这违反了任何测试原则吗?

时间:2013-06-12 21:58:26

标签: javascript unit-testing jasmine

我正在使用Jasmine.js编写JS单元测试,不确定这种类型的代码是否违反了任何类型的测试原则:

expect(someObject).toNotBe(undefined || null);

而不是

expect(someObject).toNotBe(undefined);
expect(someObject).toNotBe(null);

尽管nullundefined不同,但就我的测试而言,我并不(我想)关心它是哪一个。

1 个答案:

答案 0 :(得分:3)

undefined || null返回null,因为undefined是假的:

> undefined || null
null

您的第一个示例实际上等同于第二个示例的第二行,即:

expect(someObject).toNotBe(null);

此外,toNotBe is deprecated

  

旧的匹配器toNotEqualtoNotBetoNotMatchtoNotContain已弃用,将在以后的版本中删除。请更改您的规范,分别使用not.toEqualnot.toBenot.toMatchnot.toContain

您可能希望检查nullfalse != null的平等(不是身份!),undefined == null

expect(someObject).not.toEqual(null);

如果someObject false0[]等也不受欢迎,您也可以这样做:

expect(someObject).toBeTruthy();

否则,你应该编写自己的匹配器。