我经常阅读这类问题:
如何使用jasmine测试以下功能?
正在搜索该答案的人已经搜索了茉莉花测试的例子,并没有找到可以帮助他或她的东西。
但这个问题没有好的答案。您可以通过发布测试来做出正确的答案,该测试让功能失败或不失败,但答案并不好。为什么?因为这是完全错误的问题。
那么我为什么不要问"如何使用茉莉花和#34;来编写该功能的测试? ?
答案 0 :(得分:1)
为什么你永远不应该问:如何用茉莉花来测试这个功能?
在jasmines github page上,第一句话是:
Jasmine是一个针对JavaScript的行为驱动开发测试框架。
那么什么是行为驱动开发?该主题的答案为Wikipedia
BDD的原则是:
因此,如果我使用茉莉花,我会致力于BDD流程。在这意味着第一手,我正在思考,我的程序应该做什么以及我如何构建它。 BDD与单元测试过程的功能首先是不同的,你需要考虑完全不同的程序。
一开始我也犯了错误,首先考虑我的班级及其方法。但是一旦你知道如何构建你的程序,它通过测试,你就不会再想回去了。因为结果也完全不同。当您的代码易于测试时,您将拥有许多小功能。每个功能都只做非常简单的事情。那些小功能也很容易测试。您会惊讶地发现expect(myFunction()).toEqual("my result")
足以测试您的代码的频率。
所以你永远不应该问:如何用茉莉花来测试给定的函数?因为茉莉花的意图不是测试已有的功能。当您首先编写测试时,将测试所有功能。
允许的是询问如何使用茉莉花来测试行为。