我只是实施JUnit测试的初学者。我有一个测试用例,如下所示。我已经尝试过when ... thenreturn + verify方法。
@RunWith(MockitoJUnitRunner.class)
public class CategoryControllerTest {
@InjectMocks
CategoryController categeoryCntrlr;
@Mock
private CategoryService catSvc;
//private CategoryController catCntrl;
@Test
public void insertCategoryTest(){
Category cat=new Category();
cat.setStrCatName("Vehicle");
String str = categeoryCntrlr.insertCategory(cat);
System.out.println(str);
assertEquals("failure",str);
}
}
我的控制器实际返回字符串'success',但我上面的测试用例总是将str的值表示为null。
当我使用... thenreturn()并验证时,它实际上并没有测试我的存储库方法,即使我将返回更改为测试用例传递的其他内容。我知道有行为和测试。有什么解决方案我们可以在一起吗?我可以获得一些初学者教程(我看过计算器示例并找到测试方法,但没有插入/更新数据库)?我无法理解Mockito的参考文件,它是如何实际测试的。有人可以帮帮我吗?
答案 0 :(得分:0)
我不是100%确定你的目标是insertCategoryTest()
,但你可能想在你的控制器和/或服务中存根方法。
例如,要将控制器中的insertCategory()
方法存根以便始终返回"failure"
,您需要执行以下操作:
when(categeoryCntrlr.insertCategory(any())).thenReturn("failure");
此处有更多关于验证交互和存根方法调用的示例:http://mockito.org
链接到Javadoc:
http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html