简体   繁体   English

如何为 if 条件编写此 void 方法的测试用例

[英]How to write test case for this void method for if condition

public void setRefundIdForPrepaid(RefundReturnRequest refundReturnRequest) { 
    if(StringUtils.isBlank (refundReturnRequest.getRefundRequest().getRefundId())) {
        refundReturnRequest.getRefundRequest().setRefundId (Integer.toString(ThreadLocalRandom.current().nextInt(999999999)));
    }
}

you can test the RefundReturnRequest refundReturnRequest after the method executed.您可以在方法执行后测试RefundReturnRequest refundReturnRequest的refundReturnRequest。

@Test
void testSetRefundIdForPrepaid(){
   //build param
   RefundReturnRequest refundReturnRequest = new RefundReturnRequest();
   //executetd
   service.setRefundIdForPrepaid(refundReturnRequest);
   //test result
   assertThat(refundReturnRequest.getRefundRequest().getRefundId()).isEqualTo(xxx);
}

You could make RefundReturnRequest a Spy and verify that the set was called.您可以将 RefundReturnRequest 设置为 Spy 并验证该集合是否已被调用。 If you want to test it further you could pass on an Argument Captor and check that the random number is between a certain range.如果你想进一步测试它,你可以传递一个 Argument Captor 并检查随机数是否在某个范围内。 But this is type of method that I don't see much value in testing.但这是一种我认为在测试中没有多大价值的方法。 If you wanna just write 2 test cases for the If logic just verify the set method has been called and another test where it hasn't been called.如果您只想为 If 逻辑编写 2 个测试用例,只需验证 set 方法已被调用,而另一个测试尚未被调用。

So you'll need a Mock refundReturnRequest that returns a Spy RefundRequest after getRefundRequest is called.因此,您需要一个模拟的refundReturnRequest,它在调用 getRefundRequest 后返回一个 Spy RefundRequest。 And verify the setter.并验证二传手。

@Test
void TestsetRefundIdForPrepaid(){
//test case
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM