我正在尝试在这种情况下实现
expect(Object.keys(testObj)).not.toContain(value)
OR expect(testObj).toEqual(jasmine.objectContaining({
value: "1"
}))
我正在尝试检查当obj没有密钥时的情况,或者如果它确实有该密钥,那么该密钥等于某个值。
答案 0 :(得分:0)
直接回答
你可以这样做。
function assertKeyDoesntExistOrHasSpecificValue(myObj, key, expectedValue) {
if(!myObj.hasOwnProperty(key) || myObj[key] === expectedValue) {
return true;
}
return false;
}
it('should not have property x OR property x should have the value y', () => {
expect(assertKeyDoesntExistOrHasSpecificValue(myObject, 'myProperty', 'myValue')).toBe(true);
});
在上面我已经创建了一个函数,用于检查和调用单个茉莉花期望的腿部工作。因此,我可以根据给定的输入检查辅助函数是否返回true。
进一步关于孤立测试
但是,听起来你试图用一个测试用例来测试逻辑中的条件。我建议不要这样做,因为测试用例应该是可预测的。
即。要么它有财产,要么没有财产。
我建议编写多个测试用例,在测试用例1中,输入产生没有密钥的对象。测试用例2,输入产生具有预期键和值的对象。