我怎样才能让泽西明白它应该使用具体的类而不是资源的接口?
我有一个有Status资源的工作应用程序.然后我提取了一个接口IStatus,并在那里移动了所有JAX-RS注释.现在,我得到:
org.glassfish.hk2.api.MultiException A MultiException has 1 exceptions. They are:1. java.lang.NoSuchMethodException: Could not find a suitable constructor in resource.IStatus class
Run Code Online (Sandbox Code Playgroud)
我知道这适用于RestEasy.有什么方法可以让它与泽西岛一起使用吗?
是否有任何干净的方法来测试给定的字符串是否与枚举名称匹配?
现在我得到
Expected: is <SUNDAY>
Actual: SUNDAY
Run Code Online (Sandbox Code Playgroud)
我想避免必须添加.name()到每个检查
assertThat("SUNDAY", is(SUNDAY.name()))
Run Code Online (Sandbox Code Playgroud)
某事如
assertThat("SUNDAY", isEnum(SUNDAY))
Run Code Online (Sandbox Code Playgroud)
我不是在问如何编写自己的Matcher,而是问是否已经构建了一些我似乎找不到的东西。
我正在尝试验证我的响应的某些属性,如放心教程中所示。
问题是,当测试数组内的属性时,我可以验证它们是否出现(如示例所示),但不能验证它们是否与元素的其他属性匹配。
为了澄清一下,假设我收到了教程的回复(添加了“奖品”)
{
"lotto":{
"lottoId":5,
"winning-numbers":[2,45,34,23,7,5,3],
"winners":[{
"winnerId":23,
"prize":5000,
"numbers":[2,45,34,23,3,5]
},{
"winnerId":54,
"prize":100000,
"numbers":[52,3,12,11,18,22]
}]
}
}
Run Code Online (Sandbox Code Playgroud)
我可以验证 WinnerIds 为 23 和 54
expect().
body("lotto.lottoId", equalTo(5)).
body("lotto.winners.winnderId", hasItems(23, 54)).
when().
get("/lotto");
Run Code Online (Sandbox Code Playgroud)
我可以验证奖金为 500 和 100000,但无法验证 WinnerId=23 的奖金=500,以及 WinnerId=54 的奖金=100000。响应将显示 WinnerId=23,奖品=100000,并且测试将通过。
我无法使用contains()因为数组中的元素可以按任何顺序出现,所以我需要使用containsInAnyOrder()。