assert库的兴趣是什么?

时间:2014-05-15 21:20:57

标签: gruntjs mocha assert

我使用Grunt在没有断言模块的情况下运行我的单元测试,我只需用grunt记录我需要的东西并使用我的" custom"用于检查变量的状态和值的编码。

我正在考虑将mocha与grunt一起使用,但我试图找出当我运行测试时它会如何真正改变一些东西。 我的测试如何使用mocha(例如)更有价值?

关于这些工具的成功,我觉得我在实用程序中缺少一些东西。 如果有人可以向我解释它们是如何以及何时有用的话,那真的很棒!

1 个答案:

答案 0 :(得分:0)

首先,mocha 一个断言库,默认情况下不发送任何内容。 Mocha是一个测试框架,可让您使用多个interfaces中的一个来描述和组织测试。它还提供了测试运行后的状态报告(有时 运行时)。

您似乎已经使用了一种描述和运行测试的方式,所以除非您提供有关框架/跑步者/报告者功能的更多详细信息,否则我无法指向mocha(或其他框架/跑步者)对它的优点和/或缺点。我想看看你的一些测试和你的(测试相关的)grunt任务代码,以便更好地评估它。

另一方面,断言只是检查测试中必须满足的条件,以便将它们视为“通过”。 JavaScript的断言库的示例是chai.js。你提到使用"custom" conditions(我真的不知道你的意思),所以你似乎在使用某种断言。关键是如果一个断言恰好是假的,那么它的评估测试必须失败。如果您在测试中完成了这项工作,那么恭喜您,您已经使用了断言。如果您不是,那么您的测试不是自动的(例如,如果您手动将日志与其预期值进行比较,那么您正在运行手动测试)。


我上面的评论在理论上都是正确的,你可能没有单独的测试框架,运行器和断言库。但是,使用一个成熟的工具,它也是开源的,所以它由开发人员社区维护,可能比编写自己的测试描述框架,测试运行器,测试报告器和断言库更可靠。

它还将指出您在经过时间考验的惯例和最佳实践方面的正确方向,因为它们的功能往往可以帮助您坚持它们(或者为了您自己的利益而强迫它们)。例如,mocha提供了一种简单而又整洁的方式来描述测试(和测试套件)的设置和拆卸过程,如果你不自己实现,将使你的测试有很多不完全相关的代码,使他们更难理解,从而维持。