我试图在Spring MVC Web服务返回的JSON结果中验证LocalDate对象,但我不知道如何验证。
目前,我总是遇到如下断言错误:
java.lang.AssertionError: JSON路径" $[0]。“开始日期”应为:是
我的测试的重要部分发布在下面。任何想法如何修复测试以通过?
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
public class WebserviceTest {
@Mock
private Service service;
@InjectMocks
private Webservice webservice;
private MockMvc mockMvc;
@Before
public void before() {
mockMvc = standaloneSetup(webservice).build();
}
@Test
public void testLocalDate() throws Exception {
// prepare service mock to return a valid result (left out)
mockMvc.perform(get("/data/2017")).andExpect(status().isOk())
.andExpect(jsonPath("$[0].startDate", is(LocalDate.of(2017, 1, 1))));
}
}
webservice返回一个视图对象列表,如下所示:
public class ViewObject {
@JsonProperty
private LocalDate startDate;
}
[编辑]
另一次尝试是
.andExpect(jsonPath("$[0].startDate", is(new int[] { 2017, 1, 1 })))
导致
java.lang.AssertionError: JSON path “$[0].startDate” Expected: is [
[edit 2]返回的startDate对象似乎属于以下类型:< code > net . minidev . JSON . JSON array
这应该通过:
.andExpect(jsonPath("$[0].startDate", is(LocalDate.of(2017, 1, 1).toString())));
JSON响应中的LocalDate类似于“startDate”:
"startDate": {
"year": 2017,
"month": "JANUARY",
"dayOfMonth": 1,
"dayOfWeek": "SUNDAY",
"era": "CE",
"dayOfYear": 1,
"leapYear": false,
"monthValue": 1,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
}
因此,您应该检查每个属性,如下所示:
.andExpect(jsonPath("$[0].startDate.year", is(2017)))
.andExpect(jsonPath("$[0].startDate.dayOfMonth", is(1)))
.andExpect(jsonPath("$[0].startDate.dayOfYear", is(1)))
这是要走的路。感谢“Amit K Bist”为我指明了正确的方向
...
.andExpect(jsonPath("$[0].startDate[0]", is(2017)))
.andExpect(jsonPath("$[0].startDate[1]", is(1)))
.andExpect(jsonPath("$[0].startDate[2]", is(1)))
我试图断言Json响应在我的jmetm使用Beanshell断言。下面是我的代码。 下面是我必须验证的Json路径 运行脚本后,我得到以下脚本。 断言失败消息:org。阿帕奇。乔芬。util。JMeterException:调用bsh方法时出错:评估源文件:内联评估:``导入组织。json。JSONObject;导入组织。json。杰索纳雷;导入java。lang.String;…'':类型化变量
我有一个关于Rest保证的问题。-https://code.google.com/p/rest-assured/wiki/Usage 我知道我可以使用REST保证进行HTTP调用(. get. put等)。)并使用时()等验证响应。我想验证我已经保存在数据库中的JSON响应,而不是实时调用Web服务并验证它的响应。 我可以使用REST-保证加载JSON响应作为字符串并验证它吗?
我收到了针对我的API的错误请求的以下响应。我将RestAssured用于我的rest响应断言。 我需要验证响应的所有属性的值。我正在努力验证此路径:。我无法为它想出GPath。 以下是我所作的断言: 由于路径不正确,断言总是失败。
我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?
我有一个测试场景,其中Web应用程序中的字段填充了来自json响应的数据。 例如- 为了实现这一点,我了解了RestAsure和HTTP客户端库,但我不确定如何发送请求部分或检索响应,因为在许多情况下响应非常大(超过150个名称值对)。 以下是我尝试过的: 现在,我在 Method.POST 行中遇到错误,它的显示语法错误也使我对是否有其他方法感到困惑。
在使用空手道框架进行API测试时,我在验证嵌套JSON响应时遇到了一些问题。 JSON响应: null def feed_cycle={item_type:'#string',title:'#string'} def feed_college_dept_branch={branch:'#string'} def feed_college={item_type:'#string',dept:'[]f