如何使用Mockito比较Junit测试案例中的多个条件

时间:2015-03-19 15:12:13

标签: java junit mockito

我想在使用Mockito的Junit测试案例中给出多个条件。 我需要使用mockito的Junit测试用例的代码如下。在这个问题上帮助我。

      Customer customer;//Cutomer is a class;
      String temp;
      if(customer.isSetValid() &&
      StringUtil.hasvalue(temp=customer.isGetValid.getValue()))

如何在Mockito.Syntax中使用多个条件is-When(conditions).thenReturn(true);

2 个答案:

答案 0 :(得分:1)

when条件是方法的输入参数,而不是条件,所以你可以传递两个方法参数,那些将是mock的条件。

因此,当模拟一个方法时,你可以传递一个模拟客户和一个temp值,当你测试它时你将传递给方法,这样mock就会返回你在thenReturn函数中传递的任何东西。

您还可以使用any

等匹配器

答案 1 :(得分:0)

我猜你想根据你的问题使用Customer作为模拟方法的参数,但你想确保客户处于预期状态。您可以尝试澄清意图或用例,或者用伪语言写下您想要做的事情。

如果您有http客户端并且它有saveCustomer(Customer customer)且客户创建超出您的控制范围(第1类保存客户正在创建客户并通过http保存它),并且您想要验证{{1 http客户端使用它时,你可以执行以下操作:

Customer

请检查mockito argument captor以获取更多详细信息,但这是验证使用期望类调用该方法和捕获实例的好方法,因此您可以对其进行断言。