REST APIのテストフレームワークであるFrisby.jsのTips。
sample.json
{
"member": [
{
"name": "tomute",
"hobby": "ski"
},
{
"name": "tom",
"hobby": null
},
{
"name": "kate",
"hobby": "football"
}
]
}
上記のようにnullが含まれるようなJSONが返ってくるAPIを、以下のようにexpectJSONTypes()でStringとして検証すると、「Error: Expected 'null' to be type 'string' on key 'hobby'」というようなエラーになってしまう。
test_spec.js
frisby.create('Test using a path as the paramater')
.get('http://localhost:3000/test')
.expectJSONTypes('member.*', {
"name": String,
"hobby": String
})
.toss()
このような場合にはFrisby.jsが用意するCustom Matcherを利用して、以下のような検証コードにすれば良い。
test_spec.js
frisby.create('Test using a path as the paramater')
.get('http://localhost:3000/test')
.expectJSONTypes('member.*', {
"name": String,
"hobby": function(val) { expect(val).toBeTypeOrNull(String); }
})
.toss()
Frisby.jsが用意するCustom Matcherには他にもtoMatchOrBeNull、toMatchOrBeEmpty、toBeTypeOrUndefined等がある。
また自身でCustom Matcherを作成する事も可能である。