小编use*_*729的帖子

使用Jersey 2从我的资源类中提取接口时"无法找到合适的构造函数"

我怎样才能让泽西明白它应该使用具体的类而不是资源的接口?

我有一个有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.有什么方法可以让它与泽西岛一起使用吗?

java jax-rs jersey-2.0

6
推荐指数
2
解决办法
5840
查看次数

将字符串与枚举名称匹配

是否有任何干净的方法来测试给定的字符串是否与枚举名称匹配?

现在我得到

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,而是问是否已经构建了一些我似乎找不到的东西。

java testing hamcrest matcher

5
推荐指数
1
解决办法
1832
查看次数

如何放心验证数组内元素值的正确性

我正在尝试验证我的响应的某些属性,如放心教程中所示。

问题是,当测试数组内的属性时,我可以验证它们是否出现(如示例所示),但不能验证它们是否与元素的其他属性匹配。

为了澄清一下,假设我收到了教程的回复(添加了“奖品”)

{
"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()

java testing hamcrest rest-assured

5
推荐指数
1
解决办法
7669
查看次数

标签 统计

java ×3

hamcrest ×2

testing ×2

jax-rs ×1

jersey-2.0 ×1

matcher ×1

rest-assured ×1