我使用的是buster.js和"expect“断言。我希望断言至少在以下一项中取得成功:
expect(req.body.data._id).toBe('foo bar baz');
或
expect(req.body.data.id).toBe('foo bar baz');
我该怎么做呢?
发布于 2016-02-16 01:15:34
看看你想要的relevant documentation
expect([req.body.data._id, req.body.data.id]).toContain('foo bar baz');发布于 2016-02-16 02:01:10
虽然@glenn jackman的答案已经足够好了,但为了获得更多与语义相关的阅读,你可以使用带有一些isEqual模拟的Array.prototype.some函数。示例:
var isEqual = function(first) { return function(second) { return first === second; }; }
[1,2,3].some(isEqual(2); // true
expect([1,2,3].some(isEqual(2))).toBeTrue(); // passed
expect([1,2,3].some(isEqual(4))).toBeTrue(); // failed或者你可以沿着这条路走得更远:
var someOf = function(array) { return array.some.bind(array); };
expect(someOf([1,2,3])(isEqual(1))).toBeTrue(); // passed去掉括号:
var someOf = function(array) {
return { isEqual: function(x) { return array.some(isEqual(x)); } };
}
expect(someOf([1,2,3]).isEqual(4)).toBeTrue();我相信你可以用buster.referee.add创建更多的自定义“期望”。
发布于 2016-02-15 05:38:24
expect(req.body.data._id || req.body.data.id).toBe('foo bar baz');
https://stackoverflow.com/questions/35398281
复制相似问题