如何在测试方法中简化 mockito/hamcrest 参数匹配器? [英] How do I simplify mockito/hamcrest argument matchers in test method?
本文介绍了如何在测试方法中简化 mockito/hamcrest 参数匹配器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面的测试方法出现在一个spring-guide 教程.是否有更简单的语法来编写此测试,或者我如何将其分解为更小的块?
The test method below appear in a spring-guide tutorial. Is there a less convoluted syntax to write this test or how can I break it apart into smaller chunks?
verify(orderService).createOrder(
org.mockito.Matchers.<CreateOrderEvent>argThat(
allOf( org.hamcrest.Matchers.<CreateOrderEvent>
hasProperty("details",
hasProperty("dateTimeOfSubmission", notNullValue())),
org.hamcrest.Matchers.<CreateOrderEvent>hasProperty("details",
hasProperty("name", equalTo(CUSTOMER_NAME))),
org.hamcrest.Matchers.<CreateOrderEvent>hasProperty("details",
hasProperty("address1", equalTo(ADDRESS1))),
org.hamcrest.Matchers.<CreateOrderEvent>hasProperty("details",
hasProperty("postcode", equalTo(POST_CODE)))
)));
推荐答案
你可以切换 hasProperty 和 allOf 匹配器.
You could switch the hasProperty and the allOf matchers.
verify(orderService).createOrder(
org.mockito.Matchers.<CreateOrderEvent>argThat(
org.hamcrest.Matchers.<CreateOrderEvent>hasProperty("details",
allOf(
hasProperty("dateTimeOfSubmission", notNullValue()),
hasProperty("name", equalTo(CUSTOMER_NAME)),
hasProperty("address1", equalTo(ADDRESS1)),
hasProperty("postcode", equalTo(POST_CODE)))
)));
这篇关于如何在测试方法中简化 mockito/hamcrest 参数匹配器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文