Javascript JS新手对常见测试程序感到困惑

Javascript JS新手对常见测试程序感到困惑,javascript,testing,Javascript,Testing,全部: 我以前从来没有做过JS测试,我所做的只是编写代码,运行代码,如果有bug的话,如果不是的话,把它看作是完成的。< /P> 对于小型项目,这是可以的,因为我可以很快找出哪里是错误的,但当我来到一个有中型项目的团队时,我意识到我应该学习如何进行JS测试 所以我的问题是: [1] 是否有一个关于测试程序的通用指南(无需涵盖所有内容,仅从经验丰富的工程师日常工作开始)?比如测试什么和如何测试。(请举例说明) [2] 我发现大多数帖子都在谈论使用Jasmine/Mocha/Grunt/Karma进

全部:

我以前从来没有做过JS测试,我所做的只是编写代码,运行代码,如果有bug的话,如果不是的话,把它看作是完成的。< /P> 对于小型项目,这是可以的,因为我可以很快找出哪里是错误的,但当我来到一个有中型项目的团队时,我意识到我应该学习如何进行JS测试

所以我的问题是:

[1] 是否有一个关于测试程序的通用指南(无需涵盖所有内容,仅从经验丰富的工程师日常工作开始)?比如测试什么和如何测试。(请举例说明)

[2] 我发现大多数帖子都在谈论使用Jasmine/Mocha/Grunt/Karma进行测试,但如果不了解内容和计划,我就不太明白为什么要使用它们以及如何使用它们。那么,有谁能给我举一个关于他们使用场景的例子吗

顺便说一句,我知道这是一个非常新的问题,可能有人会认为这个话题太宽泛了,如果是这样的话,请你用一个小例子从任何一个特定的角度谈谈你的想法。我将收集所有答案并自己做总结(我需要知道的最重要的事情是我“通常”需要做什么“特定”测试(比如:测试流程)。至于如何做,这是第二优先事项)


谢谢

您需要测试的内容取决于您的应用程序。最简单的开始是单元测试。这里测试单个函数或对象。编写测试代码,使其可以反复运行。如果您有调用其他对象的对象,您可以在这里添加一个虚拟实现。您可以手动或使用模拟JavaScript框架来完成此操作。好的单元测试

  • 是可重复的
  • 不依赖于外部数据
  • 一次只测试一个Funktionalität
自动化是grunt和jasmine帮助您的地方。 Grunt是一种构建工具,如果您熟悉Java或Linux中的Make,它与ant类似。Grunt可以在每次部署之前使用Jasmine运行测试

关于一般理论的介绍,请看维基百科上关于测试驱动开发的文章。罗伯特·C·马丁的《清洁代码》一书中也有一段关于TDD的好段落


我希望我能帮你一点忙。

你提到了茉莉花和摩卡的名字(所以你知道它们)——但是你有没有寻找并阅读过任何教程来解释如何使用它们来单元测试你的JS代码?这就是我开始理解测试JS代码应该做什么的地方。@Jamass谢谢,那些Jasmine/Mocha。。。现在对我来说只是名字。就像我说的,我现在是个新手,所以在文档中找到正确的条目对我来说有点难。到目前为止,我所做的是寻找快速入门教程,看看如何使用它们,但即使我阅读了大部分教程,我仍然觉得我不知道我需要对真实项目做什么,即使我手头上有这些测试工具。我需要一个指南来告诉我在我写代码之后该做什么,以及如何使用这些工具来做。我认为应该遵循一些系统化的程序。单元测试是一个庞大的课题,它不像你能把它压缩成几个要点。这就像问“编程要遵循什么程序”一样。如果你不知道单元测试是如何工作的,那么通过学习这些工具,你就超越了自己;您应该首先从测试自身的基础知识开始。@Juhana非常感谢,您所说的是正确的。我目前的情况是对单元测试一无所知(我甚至不知道它是关于单元测试的),而只是找到一些关于如何使用这些工具的帖子,这些工具使我走在了前面。你说的“首先从测试本身的基础开始”正是我想要的,但是没有任何建议,我有点困惑从哪里开始学习测试的基本规则和方法:(谢谢,这很有帮助。我会找到那些帖子和书,看看我能不能找到。你能给我一个具体的例子,让我能大致了解它是什么样子吗?