Junit测试方法中的模型参数
我是新来的,我正在学习 Spring-MVC 和 Junit。
我正在尝试使用 Junit 来实现这个基本控制器方法的测试方法:
public String home(Model model) {
model.addAttribute(new Contact());
logger.info("Welcome home!");
return "home";
}
测试方法如下:
public void testHome() throws Exception{
ContactsController contactsController=new ContactsController();
Assert.assertEquals("home",contactsController.home(new Model()));
}
问题是,由于 Model 是一个接口,我显然无法创建一个新的 Model 对象来将其传递为contactController.home(...) 的参数。你会给我什么选择?我不知道该怎么办。
谢谢
I'm new here and I'm learning Spring-MVC and Junit.
I'm trying to implement the test methods with Junit for this basic controller method:
public String home(Model model) {
model.addAttribute(new Contact());
logger.info("Welcome home!");
return "home";
}
And the test method is the following:
public void testHome() throws Exception{
ContactsController contactsController=new ContactsController();
Assert.assertEquals("home",contactsController.home(new Model()));
}
The problem is, since Model is an interface I'm obviously not able to create a new Model object to pass it as a parameter to contactsController.home(...). What options would you give me? I have no idea what to do.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要传递
Model
的实现,例如ExtendedModelMap
:You need to pass an implementation of
Model
, such asExtendedModelMap
:我知道它太老了..但如果有人有同样的问题,只需使用 @Mock 注释来初始化模型对象。诸如此类:
然后根据需要使用模型
I know its so old.. but if someone has same problem just use @Mock annotation to initialize Model object. sth like:
then just use model as you desired