我刚刚学习了Jasmine库,我注意到Jasmine的内置断言数量非常有限.我也注意到,尽管数量有限,但它的两个断言似乎是多余的:toBeDefined/ toBeUndefined.
换句话说,这两者似乎都会检查同样的事情:
expect(1).toBeDefined();
expect(undefined).not.toBeUndefined();
Run Code Online (Sandbox Code Playgroud)
这有什么理由,就像一个toBeDefined不一样的情况toBeUndefined?或者这只是Jasmine中的一个断言,它有两种完全相同的被调用方式?
有人可能会假设toBeTruthy和toBeFalsy,或者toBeLessThan和toBeGreaterThan(虽然我猜最后两个中缺少的断言是toEqual).最后,它归结为可读性和用户偏好.
为了给您一个更完整的答案,查看为这些函数调用的代码可能很有用.执行的代码通过不同的路径(因此toBeUndefined不是简单的!toBeDefined).唯一真正有效的答案是可读性(或者让人烦恼的功能请求).https://github.com/pivotal/jasmine/blob/master/src/core/Matchers.js#L135
| 归档时间: |
|
| 查看次数: |
7556 次 |
| 最近记录: |