首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >期待这个或那个,如何在单元测试中包含or

期待这个或那个,如何在单元测试中包含or
EN

Stack Overflow用户
提问于 2016-02-15 05:36:49
回答 3查看 302关注 0票数 2

我使用的是buster.js和"expect“断言。我希望断言至少在以下一项中取得成功:

expect(req.body.data._id).toBe('foo bar baz');

expect(req.body.data.id).toBe('foo bar baz');

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2016-02-16 01:15:34

看看你想要的relevant documentation

代码语言:javascript
复制
expect([req.body.data._id, req.body.data.id]).toContain('foo bar baz');
票数 2
EN

Stack Overflow用户

发布于 2016-02-16 02:01:10

虽然@glenn jackman的答案已经足够好了,但为了获得更多与语义相关的阅读,你可以使用带有一些isEqual模拟的Array.prototype.some函数。示例:

代码语言:javascript
复制
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

或者你可以沿着这条路走得更远:

代码语言:javascript
复制
var someOf = function(array) { return array.some.bind(array); };

expect(someOf([1,2,3])(isEqual(1))).toBeTrue(); // passed

去掉括号:

代码语言:javascript
复制
var someOf = function(array) {
    return { isEqual: function(x) { return array.some(isEqual(x)); } };
}

expect(someOf([1,2,3]).isEqual(4)).toBeTrue();

我相信你可以用buster.referee.add创建更多的自定义“期望”。

票数 2
EN

Stack Overflow用户

发布于 2016-02-15 05:38:24

expect(req.body.data._id || req.body.data.id).toBe('foo bar baz');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35398281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档