如何使用 Mockito 比较 Junit 测试用例中的多个条件
How to Compare Multiple Conditions in Junit Test Cases using Mockito
我想使用 Mockito 在 Junit 测试用例中给出多个条件。
我需要使用 mockito 的 Junit 测试用例的代码是 below.Help 我不在这个问题上。
Customer customer;//Cutomer is a class;
String temp;
if(customer.isSetValid() &&
StringUtil.hasvalue(temp=customer.isGetValid.getValue()))
如何在Mockito.Syntax中使用多个条件是-When(conditions).thenReturn(true);
when 条件是方法的输入参数,而不是 if 条件,因此您可以传递两个方法参数,它们将成为 mock 的条件。
因此,当模拟一个方法时,您可以传递一个模拟客户和一个 temp 值,您将在测试它时将其传递给该方法,这样模拟将 return 无论您在 thenReturn 函数中传递什么.
您也可以使用像 any
这样的匹配器
我猜您想使用 Customer
作为根据您的问题在 mock 上完成的方法的参数,但您希望确保客户处于预期状态。你可能会尝试阐明意图或用例,或者用伪语言写下你想做什么。
如果您有 http 客户端,它有 saveCustomer(Customer customer)
并且客户创建不在您的控制范围内(class 1 save customer 正在创建客户并通过 http 保存),并且您想要在 http 客户端使用它时验证 Customer
对象的状态你可以这样做:
Client client = Mockito.mock(Client.class);
Class1 class1 = new Class1(client); //class that uses client and creates customer
ArgumentCaptor<Customer> customerCaptor = ArgumentCaptor.forClass(Customer.class);
class1.createCustomer(); //method that does create and save
verify(client).saveCustomer(customerCaptor.capture());
final Customer customer = Customer.getValue();
Assert.assertTrue(customer.isSetValid());
Assert.assertTrue(StringUtil.hasvalue(temp=customer.isGetValid.getValue()));
//do other asserts on customer
请检查 mockito argument captor 了解更多详细信息,但这是一种很好的方法,既可以验证该方法是否按预期 class 调用,又可以捕获实例,以便您可以对其进行断言。
我想使用 Mockito 在 Junit 测试用例中给出多个条件。 我需要使用 mockito 的 Junit 测试用例的代码是 below.Help 我不在这个问题上。
Customer customer;//Cutomer is a class;
String temp;
if(customer.isSetValid() &&
StringUtil.hasvalue(temp=customer.isGetValid.getValue()))
如何在Mockito.Syntax中使用多个条件是-When(conditions).thenReturn(true);
when 条件是方法的输入参数,而不是 if 条件,因此您可以传递两个方法参数,它们将成为 mock 的条件。
因此,当模拟一个方法时,您可以传递一个模拟客户和一个 temp 值,您将在测试它时将其传递给该方法,这样模拟将 return 无论您在 thenReturn 函数中传递什么.
您也可以使用像 any
这样的匹配器我猜您想使用 Customer
作为根据您的问题在 mock 上完成的方法的参数,但您希望确保客户处于预期状态。你可能会尝试阐明意图或用例,或者用伪语言写下你想做什么。
如果您有 http 客户端,它有 saveCustomer(Customer customer)
并且客户创建不在您的控制范围内(class 1 save customer 正在创建客户并通过 http 保存),并且您想要在 http 客户端使用它时验证 Customer
对象的状态你可以这样做:
Client client = Mockito.mock(Client.class);
Class1 class1 = new Class1(client); //class that uses client and creates customer
ArgumentCaptor<Customer> customerCaptor = ArgumentCaptor.forClass(Customer.class);
class1.createCustomer(); //method that does create and save
verify(client).saveCustomer(customerCaptor.capture());
final Customer customer = Customer.getValue();
Assert.assertTrue(customer.isSetValid());
Assert.assertTrue(StringUtil.hasvalue(temp=customer.isGetValid.getValue()));
//do other asserts on customer
请检查 mockito argument captor 了解更多详细信息,但这是一种很好的方法,既可以验证该方法是否按预期 class 调用,又可以捕获实例,以便您可以对其进行断言。