[英]How to unit test JSON result in Jest NodeJS?
我正在尝试进行单元测试的函数给出为
注意: mypayload= payload.Items
我会在问题的最后给出一个 JSON 参考
function setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload) {
let _res = mypayload.map(ele => {
if (ele.id == null) {
ele.id = ele.deviceId
}
if (ele.id == null && ele.deviceId == null) {
ele.id = '***Both id and device id is null***'
}
if (ele.ssid == null) {
ele.ssid = '***ssid is null***'
}
if (ele.deviceName == null) {
ele.deviceName = '**deviceName is null**'
}
return ele;
})
return _res
}
我正在尝试测试最基本的部分,即第一个 if 循环ele.id==null
我试过了 :
describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
test('testing null', () => {
index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
mypayload.map(ele => {
if (ele.id == null) {
expect(ele.id).toEqual(ele.deviceId)
}
})
})
})
但是,如果我输入expect(ele.id).toEqual("random")
,我无法让这个测试用例失败,当我期望它失败时它仍然通过,显然我做错了什么
参考
const payload = {"Items":[
{
"id" :"mycompany-00b12396",
"ssid": "home",
"deviceName": "mydevice",
"time": "0.753235299 Hours"
},
{
"ssid": "office",
"deviceName": "thisdevice",
"time": "12.52115515 Hours",
"deviceId":"mycompany-0031f13"
}
]}
您应该像这样测试函数的结果:
describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
test('testing null', () => {
const result = index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
result.map(ele => {
if (!ele.id) {
expect(ele.id).toEqual(ele.deviceId)
}
})
})
})
我一直在尝试,这对我有用,希望它可以帮助将来的某个人
describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
test('testing null', () => {
const result = index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
let check = result.find(el => el.deviceId === "mycompany-00a412f");
expect(check.id).toEqual(check.deviceId)
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.