首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >摩卡/柴测试:我如何使它更严格?

摩卡/柴测试:我如何使它更严格?
EN

Stack Overflow用户
提问于 2017-03-26 17:01:49
回答 1查看 66关注 0票数 0

使用摩卡和柴,我注意到许多不可靠的测试。我希望这些都失败。类似的StackOverflow问题是因为异步而没有使用done()。即使这是我的案子,我也一定希望它失败!

我在应该是exist的地方输入了一个错误。它不会告诉我这一点,除非我在一个特定的位置做一个类型。

  1. 为什么这个测试不及格?
  2. 我做错什么了吗?
  3. 怎样才能使摩卡/柴区更严格呢?

这些都通过了!?

代码语言:javascript
复制
expect(component.find('textarea')).to.exest;
expect(component.find('textarea')).to.not.exest;
expect(component.find('textarea')).to.exsdafdsafdsfdsafest;

这不算什么。

代码语言:javascript
复制
expect(component.find('textarea')).BLAHASDF.exest;

TypeError: Cannot read property 'exest' of undefined

好吧,谢谢柴先生现在告诉我!

好吧,我有点傻,但我可以向你保证,这让我很沮丧!

是否有一些设置,或有什么东西我错过了,或有另一个库,超过这一个?

EN

回答 1

Stack Overflow用户

发布于 2017-03-26 18:10:17

当您试图访问未定义的属性时,您描述的是“正常”的javascript行为。这与柴、摩卡或其他图书馆无关。

在Javascript中,尝试访问对象的未定义属性不会导致任何错误。例如,你可以这样做

代码语言:javascript
复制
var a = { foo: 'bar'};
console.log(a.baz);  // This logs undefined, doesn't cause any error.

因此,当您执行expect(component.find('textarea')).BLAHASDF.exest;时,它将抛出一个错误,因为您首先尝试访问BLAHASDF,后者计算为undefined,然后尝试执行undefined.exest,这将引发一个错误,因为undefined是一个原语,而不是一个对象。

不过,我同意您的看法,即柴期望重/这些情况下的API并不理想。我更喜欢执行类似expect(component.find('textarea')).exist()的操作,以便那里的错误(例如,.exests())确实会导致错误(“未定义不是函数”)。

但是,正如注释中所指出的,确实可以在柴:http://chaijs.com/api/assert/中使用不同的断言样式。

如果您在这方面寻找另一个可供选择的库,我会推荐Jest https://facebook.github.io/jest/)或极简的Tapejs (https://github.com/substack/tape)。

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

https://stackoverflow.com/questions/43031783

复制
相关文章

相似问题

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