我正在使用Kotlin进行单元测试,无法迭代测试用例中的对象列表,请检查以下编码,
@Test
@WithMockOAuth(siteId = "5698965", subPermissions = [SubPermission.GETD])
fun `get fee zero`() {
val body = """
{
"newMessage": {
"call": true,
"callMessatgeCount": 3,
"discounted": 2,
"NewFees": 4.99,
"Id" : "extra SIM Business"
}
}
""".trimIndent()
this.server.expect(requestTo("${integrationClientProperties.url}/main/0767777777/register/"))
.andRespond(withSuccess(body, MediaType.APPLICATION_JSON_UTF8))
assertThat(service.getValues("0767777777"))
.hasSize(3)
.first()
.hasFieldOrPropertyWithValue("callMessatgeCount", 3)
.hasFieldOrPropertyWithValue("NewFees", BigDecimal.ZERO)
this.server.verify()
}
上面我可以检查first()
元素的hasFieldOrPropertyWithValue
,因为hasSize(3)
,我需要在相同的TestCase
方法中检查List of Objects
的所有3个值。
对象列表如下
ListValue:[
{
"newMessage": {
"call": true,
"callMessatgeCount": 3,
"discounted": 2,
"NewFees": 4.99,
"Id" : "extra SIM Business"
},
{
"newMessage": {
"call": true,
"callMessatgeCount": 3,
"discounted": 2,
"NewFees": 0,
"Id" : "extra SIM Business"
},
{
"newMessage": {
"call": true,
"callMessatgeCount": 3,
"discounted": 2,
"NewFees": 4.99,
"Id" : "extra SIM Business"
}
]
注意:我尝试使用element(index)
来检查使用多个测试用例的对象列表。
已更新
库”org.assertj.core.api.Assertions
并支持java8
1条答案
按热度按时间sr4lhrrt1#
假设您使用的是方法名称中的AssertJ,并且您拥有支持Java-8的版本(即3.5+),则可以找到
allSatisfy
方法:验证所有元素是否满足表示为Consumer的给定要求。
这对于在元素上执行一组Assert很有用。
从文档中,应该可以执行以下操作
您还可以查看Kotlin特定的库(特别是在需要编译到JVM 6的情况下)。