javascript expect.toBe 具有多个值
Posted
技术标签:
【中文标题】javascript expect.toBe 具有多个值【英文标题】:javascript expect.toBe with multiple values 【发布时间】:2015-06-04 10:10:27 【问题描述】:我遇到了与夏令时有关的问题。我有 javascript jasmine 测试,我测试开放时间是否正确。开放时间以 GMT 时间存储,因为它们是从后端 api 获取的。问题是,不能用 expect.toBe(certain_hour) 测试正确的开放时间,因为现在夏令时结束时,开放时间将不一样。无论如何,尝试将开放时间存储在 GMT 时间可能是愚蠢的,因为那时实际的开放时间会发生变化。但是,我怎么能用多个值测试 expect.toBe 呢?目前,我可以测试 expect.toBe(hour_one || hour_two),但不支持?
【问题讨论】:
【参考方案1】:测试代码还是javascript,所以当你写这样的:
expect.toBe(hour_one || hour_two)
它将hour_one || hour_two
评估为逻辑表达式。在 javascript 中,当计算 a || b
形式的表达式时,将返回两者的第一个非假值,因此 0 || 5
将返回 5,但 2||5
将返回 2。
然后这个评估结果,作为单个参数,被传递给toBe()
函数。
【讨论】:
不起作用 =/。它只接受第一个参数,并将其传递给 toBe 函数。【参考方案2】:与Jasmine expect(resultCode).toBe(200 or 409)类似的问题
我们可以像这样使用expect().toContain():
expect([200,409]).toContain(resultCode);
或不包含:
expect([200,409]).not.toContain(resultCode);
【讨论】:
以上是关于javascript expect.toBe 具有多个值的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 具有实例创建参数的Javascript类
如何检查对象是不是在 JavaScript 中具有特定属性?