我是新来的,我正在学习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对象来将它作为参数传递给contactsController.home(...)。你会给我什么选择?我不知道该怎么做。
由于
答案 0 :(得分:5)
您需要传递Model
的实施,例如ExtendedModelMap
:
public void testHome() throws Exception{
ContactsController contactsController=new ContactsController();
Assert.assertEquals("home",contactsController.home(new ExtendedModelMap()));
}
答案 1 :(得分:0)
我知道它太旧了..但是如果有人遇到同样的问题,只需使用@Mock注释即可初始化Model对象。像这样:
@Mock
Model model;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
}
然后只需根据需要使用模型