为什么我永远都不应该问;如何使用jasmine“为该函数编写测试?”;?

为什么我永远都不应该问;如何使用jasmine“为该函数编写测试?”;?,jasmine,jasmine-jquery,jasmine-node,Jasmine,Jasmine Jquery,Jasmine Node,我经常读到这样的问题: 如何使用jasmine测试以下函数 正在搜索答案的人已经搜索了茉莉花测试的示例,但没有找到对他或她有帮助的东西 但这个问题没有好的答案。您可以通过发布一个测试来做出正确的答案,该测试允许函数失败或不失败,但答案不好。为什么?因为这是一个完全错误的问题 那么,为什么我永远都不应该问“如何用jasmine为该函数编写测试”?为什么永远都不应该问aks:如何用jasmine测试该函数 茉莉花上的第一句话是: Jasmine是一个针对JavaScript的行为驱动开发测试框架 那

我经常读到这样的问题:

如何使用jasmine测试以下函数

正在搜索答案的人已经搜索了茉莉花测试的示例,但没有找到对他或她有帮助的东西

但这个问题没有好的答案。您可以通过发布一个测试来做出正确的答案,该测试允许函数失败或不失败,但答案不好。为什么?因为这是一个完全错误的问题


那么,为什么我永远都不应该问“如何用jasmine为该函数编写测试”?

为什么永远都不应该问aks:如何用jasmine测试该函数

茉莉花上的第一句话是:

Jasmine是一个针对JavaScript的行为驱动开发测试框架

那么什么是行为驱动开发?这个问题的答案是

BDD的原则是:

  • 首先定义单元的测试集
  • 然后实施该单元
  • 最后验证该单元的实现使测试成功
因此,如果我使用jasmine,我将致力于BDD过程。这就意味着我正在思考,我的程序应该做什么,我想如何构建它。BDD与先函数后单元测试过程是如此不同,以至于您需要考虑完全不同的编程方式

开始的时候,我也犯了一个错误,那就是首先考虑我的课程和方法。但是一旦你知道如何组织你的程序,使它通过测试,你就不会再想回去了。因为结果也完全不同。当你的代码易于测试时,你有很多小函数。每个函数只做非常简单的事情。小功能也很容易测试。您会惊讶于
expect(myFunction())的频率。toEqual(“我的结果”)
足以测试您的代码

所以你永远不要问:如何用jasmine测试给定的函数?因为jasmine无意测试已经存在的函数。当您首先编写测试时,所有函数都将被测试

允许询问如何测试行为。。。茉莉花