我想断言来自rest控制器的json输出,但我得到“预期:null but: was
mockMvc.perform(post(TEST_ENDPOINT)
.param("someParam", SOMEPARAM)
.andDo(print())
.andExpect(status().is2xxSuccessful())
.andExpect(jsonPath("*.errorMessage").value(IsNull.nullValue()));
Json:
{
"some_string": {
"errorMessage": null
}
}
我发现了类似的问题,如何用Hamcrest断言某个东西为空?,但这两个答案都不管用。也许这是由于jsonPath,因为它在[]括号中返回空值?这是断言框架的错误吗?
JSONPath将始终根据文档返回一个数组,
请注意,jsonPath的返回值是一个数组,它也是一个有效的JSON结构。因此,您可能希望再次将jsonPath应用于结果结构,或者使用您最喜欢的数组方法之一作为排序。
根据此处的结果部分[JSONPath-JSON的XPath]:(http://goessner.net/articles/JsonPath/index.html)
这样就排除了
因为它在[]括号中返回空值
nullValue的工作原理如下
import static org.hamcrest.CoreMatchers.nullValue;
....
.andExpect(jsonPath("some_string.errorMessage", nullValue()))
或
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
....
.andExpect(jsonPath("some_string.errorMessage", is(nullValue())))
正如在这里找到的答案中提到的如何断言Hamcrest的某些内容为空?
我正在用MockMvc做一些测试,我想验证JSON响应的结构。具体地说,我希望确保某个属性的键存在,并且该值是某种类型或NULL。 是否有任何聪明的Hamcrest匹配器可以应用于每个属性的单个json路径?
我编写了一个功能并与我正在使用改装,但总是“失败” 获取: LoginAPI.java: 登录活动.java: User.java: 日志说 下面是我的< code>login.php脚本:
问题内容: 之间有什么区别 和 为何后者不起作用? 问题答案: 在SQL中,之间的比较值,任何其他值(包括另一种使用比较操作符(如),,,等)将导致,这被认为是一个where子句的目的(严格来说,它的“不true”,而不是“false”,但效果相同)。 原因是a的意思是“未知”,因此与a进行任何比较的结果也都是“未知”。因此,通过编码您不会对行造成任何影响。 SQL提供了一种特殊的语法来测试列是否
问题内容: 是否有人将Hamcrest与TestNG集成在一起,以便其匹配器可以轻松地用于TestNG断言中? 问题答案: 简而言之,要回答您的问题:您不需要将TestNG与Hamcrest集成。只需直接调用哪个抛出。 背景 我通过Google找到了您的问题,想知道完全一样的问题。在进一步谷歌搜索之后,我没有找到满意的答案,因此我阅读了JUnit与Hamcrest集成的源代码。 对于JUnit,通
我在4.10版本中使用junit,在1.3版本中声明了hamcrest核心,在1.3版本中声明了hamcrest库。我的问题是hamcrest库和hamcrest核心是否嵌入junit 4.10。那么junit 4.11呢?