我使用Grunt来运行没有断言模块的单元测试,我只是用Grunt记录我需要的内容,并使用我的"自定义"条件来检查变量的状态和值。
我正在考虑使用mocha与grunt,但我试图找出它将如何真正改变的东西,当我运行我的测试。如何使用mocha(例如)使我的测试更有价值?
关于这些工具的成功,我觉得我在它们的实用性中遗漏了一些东西。如果有人能给我解释一下它们是如何以及什么时候有用的,那就太好了!
对于初学者来说,mocha是而不是一个断言库,并且默认情况下不提供任何断言库。Mocha是一个测试框架,它允许您使用几个可用的接口之一来描述和组织测试。它还提供了测试运行后的状态报告(有时在运行时)。
你似乎已经使用了一种描述和运行测试的方式,所以除非你提供更多关于你的框架/运行程序/报告程序功能的细节,否则我无法指出mocha(或其他框架/运行程序)的优点和/或缺点。我想看看你的一些测试和你的(与测试相关的)grunt任务代码,以更好地评估。
另一方面,断言只是检查测试中必须满足的条件,以便认为它们"通过"。JavaScript断言库的一个例子是chai.js。你提到使用"custom" conditions
(我真的不知道你的意思),所以你似乎在使用某种断言。关键是,如果断言碰巧为假,则计算它的测试必须失败。如果你在测试中做到了这一点,那么恭喜你,你已经在使用断言了。如果不是,那么您的测试就不是自动的(例如,如果您手动将日志与其期望值进行比较,那么您正在运行手动测试)。
我上面的评论在理论上都是正确的,你可能不需要单独的测试框架、运行器和断言库。然而,使用一个成熟的工具,它也是开源的,因此由开发人员社区维护,可能比编写自己的测试描述框架、测试运行器、测试报告器和断言库更可靠。
它还将为您指出关于经过时间考验的约定和最佳实践的正确方向,因为它们的特性倾向于帮助您坚持它们(或者为了您自己的利益而强制它们)。例如,mocha提供了一种简单而整洁的方式来描述测试(和测试套件)的设置和拆卸过程,如果您不自己实现它,将使您的测试有许多不完全相关的代码,使它们更难以理解和维护。