我试图用Junit测试内部有布尔条件的void方法
/** Method to create request */
public void createRequest(String name) {
if (verifyName(name)) {
testRepo.getRequest(name); // Void method from test repo
demoRepo.testMethod(name); // Another void method from demo repo
}
}
/** Validate name */
private boolean verifyName(String name) {
return "Test".equals(name);
}
在这种情况下,当verifyName()使用JUnit返回true/false
时,测试void方法的最佳方法是什么??
预期测试场景:
true
--您可以简单地编写两个场景:
@Captor
private String ArgumentCaptor<String> nameCaptor;
@Test
public void testForValidName() {
service.createRequest("Test");
Mockito.verify(testRepo, Mockito.times(1)).getRequest(nameCaptor.capture());
Mockito.verify(demoRepo, Mockito.times(1)).testMethod(nameCaptor.capture());
List<String> capturedValues = nameCaptor.getValues();
Assert.assertEquals("Test", capturedValues.get(0));
Assert.assertEquals("Test", capturedValues.get(1));
}
@Test
public void testForInValidName() {
service.createRequest("Test1");
Mockito.verifyNoMoreInteractions(testRepo);
Mockito.verifyNoMoreInteractions(demoRepo);
}
您可以根据条件验证是否调用了某个函数
试试这样吧
@Test
public void testValidName() {
service.createRequest("Test");
verify(testRepo, times(1)).getRequest();
verify(demoRepo, times(1)). testMethod();
}
问题内容: 我在下面的方法中编写测试用例时遇到问题: 这是我编写的测试用例,但我认为此测试用例中存在继承问题或逻辑问题。应该是一个非常简单的示例,但无法弄清楚。这是我写的代码: 问题答案: 两件事情 : 您正在静态调用非静态方法。该方法应声明为静态: public static boolean evenNum(double num){ } 您没有正确输入方法的名称。仔细看。还考虑将其重命名为更易读
我有一个名为dealDeck()的公共静态void方法,该方法从名为deck的ArrayList中获取对象,并根据它们在列表中的位置将它们分离并放置到4个不同的ArrayList中。是否有JUnit测试来检查方法是否按计划运行? 是否可以或应该测试此方法?
上面是我的测试用例。基于两个案例,我想执行上述测试方法。 例如: 在条件X中,只应执行,, 在条件Y下,应执行,,
问题内容: 在我们的项目中,我有几个JUnit测试,例如从目录中获取每个文件并对其进行测试。如果我在中实现了一种方法,那么它只会显示为可能失败或成功的一项测试。但是我对每个文件的结果都很感兴趣。如何编写一个/ 使得每个文件显示为单独的测试,例如在Eclipse的图形TestRunner中?(为每个文件编写显式测试方法不是一种选择。) 问题答案: 看看JUnit 4 中的 参数化测试 。 实际上,我
我有这两种方法,在使用Mock实现测试时遇到了困难。我该如何参加考试? 我有麻烦得到Jboss目录而不必启动System.get属性(jboss.server.temp.dir);
问题内容: 好的,因此注释非常适合标记不应运行测试用例。 但是,有时我想忽略基于运行时信息的测试。例如,如果我有一个并发测试需要在具有一定数量内核的计算机上运行。如果此测试是在单处理器计算机上运行的,那么我认为仅通过测试是不正确的(因为尚未运行),并且通过测试并破坏构建肯定不是正确的选择。 因此,我希望能够在运行时忽略测试,因为这似乎是正确的结果(因为测试框架将允许构建通过,但记录未运行测试)。我