我的nodejs服务器使用包含如下对象数组的对象进行响应:
{
error: false
message: "get dispatchers successful"
data: [1]
0: {
id: 1
first_name: "Brenth Andrew J."
last_name: "Miras"
contact_number: null
email: "brenthmiras2@gmail.com"
address: null
image: null
password: "bajmiras"
created: "2014-09-12T10:24:06.000Z"
}
}
现在我想测试数据数据的所有元素的'data'属性的类型。
我的frisby测试看起来像这样:
//expect these types of response
.expectJSONTypes('*', {
error: Boolean,
message: String,
data: {
id: Number,
first_name: String,
last_name: String,
contact_number: String,
email: String,
address: String,
image: String,
password: String,
created: String
}
})
我收到此错误:
TypeError: Expected '*' to be Array (got 'object' from JSON response)
我该怎么做?
答案 0 :(得分:3)
删除你的第一个参数' *'因为那意味着你期待一个阵列,
当响应是数组时,它会比较数组中的所有主题,因此您可以使用索引' 0'是' *'
答案 1 :(得分:3)
路径的每个段都被拆分。你可以在frisby / lib / frisby.js的源代码中找到
_.each(path.split('.'), function(segment) {
所以你的测试将是这样的:
.expectJSON('data.0', {last_name: "Miras"})
.expectJSONTypes('data.0', {
id: Number,
first_name: String
..