在消费者一级的测试是:
describe('Listing first level taxonomies', () => {
before(() => {
return provider.addInteraction({
given: 'GET call for first level taxonomies',
uponReceiving: 'Get object for listing first level
taxonomies',
withRequest: {
method: 'GET',
path: '/api/taxonomies/8061159/taxons?deleted=false',
},
willRespondWith: {
status: 200,
headers: { 'Content-Type': 'application/json' },
body: firstChild
}
});
});
const firstChild = eachLike({
'name': like('Geo'),
'taxons': [
eachLike({
'id': like(115590),
'name': like('Africa'),
'hasChildren':like (false)
})
]
});
当我在提供商级别进行验证时,出现以下错误: 期望一个数组但是得到一个哈希 ({“ name” =>“ Demo分类法”,“ taxon” => [{“ id” => 8145188,“ name” =>“ manojtaxon”, “ childCategoryName” =>“你好”, “ hasChildren” => true} 出现完全错误: https://pastebin.com/XvB17SXY
请帮助我解决问题 我认为数组大小在提供程序级别上更多,这就是为什么 失败。尽管我添加了like和eachLike(仍然没有 解决了)。
答案 0 :(得分:0)
问题是您的匹配器不正确:
应该是这样的:
const firstChild = like({
'name': 'Geo',
'taxons': eachLike({
'id': 115590,
'name': 'Africa',
'hasChildren': false
})
});
请注意删除了[
和]
。
此外,您可以避免在like
中使用eachLike
语句,因为默认情况下是隐含的。如果您需要使用其他匹配器(例如term
,则可以覆盖该行为,但您似乎只是在这里使用like
)。