使用 Mocha 和 Chai 测试网络应用
Testing web apps with Mocha and Chai
我了解如何在浏览器上使用 mocha 和 chai 测试输出值的函数,但我不了解如何使用此系统来测试完整的网络应用程序。为了将其分解为更简单的内容,我如何测试单击按钮时会显示 HTML 中已存在的 <div>
?
我遵循了这个 tutorial 但这并不适用于已经存在的应用程序。它要我创建一个新的 test.html
,但如果我的应用程序依赖于预先存在的 HTML,那将毫无意义。它还期望您应该能够创建一个 new Foo
然后 运行 测试,就像 Foo
有一个默认的 name
参数一样。但是我的应用程序已经在 document ready
.
上创建了一个 Foo
也许我没抓住要点。
测试应用程序时,不应将应用程序作为一个整体进行测试,而应测试组成应用程序的个别组件。div。您在div中单独测试这些组件。
因此,您通常会有 'test.html'(以您的示例为例),它仅包含您测试组件所必需的元素。根据您的第一个描述,'test.html' 可能仅包含一个按钮和一个隐藏的 div。您的测试将模拟按钮单击,然后验证 div 不再隐藏。
这使您可以在将代码集成到更大的 Web 应用程序之前确保代码的行为正确,否则它会变得更加复杂。
虽然您的应用程序可能已经在文档准备好时创建了一个 Foo,但该特定代码不会(或不应)包含在您对 Foo 本身的单元测试中。
听起来您没有使用我推荐的应用程序框架。这些为 web 应用程序提供了经过深入研究的结构,并且通常有大量关于使用它们构建的测试应用程序的文档。我会推荐 AngularJS (https://angularjs.org/) or React (https://facebook.github.io/react/),但还有很多选择。
我了解如何在浏览器上使用 mocha 和 chai 测试输出值的函数,但我不了解如何使用此系统来测试完整的网络应用程序。为了将其分解为更简单的内容,我如何测试单击按钮时会显示 HTML 中已存在的 <div>
?
我遵循了这个 tutorial 但这并不适用于已经存在的应用程序。它要我创建一个新的 test.html
,但如果我的应用程序依赖于预先存在的 HTML,那将毫无意义。它还期望您应该能够创建一个 new Foo
然后 运行 测试,就像 Foo
有一个默认的 name
参数一样。但是我的应用程序已经在 document ready
.
Foo
也许我没抓住要点。
测试应用程序时,不应将应用程序作为一个整体进行测试,而应测试组成应用程序的个别组件。div。您在div中单独测试这些组件。
因此,您通常会有 'test.html'(以您的示例为例),它仅包含您测试组件所必需的元素。根据您的第一个描述,'test.html' 可能仅包含一个按钮和一个隐藏的 div。您的测试将模拟按钮单击,然后验证 div 不再隐藏。
这使您可以在将代码集成到更大的 Web 应用程序之前确保代码的行为正确,否则它会变得更加复杂。
虽然您的应用程序可能已经在文档准备好时创建了一个 Foo,但该特定代码不会(或不应)包含在您对 Foo 本身的单元测试中。
听起来您没有使用我推荐的应用程序框架。这些为 web 应用程序提供了经过深入研究的结构,并且通常有大量关于使用它们构建的测试应用程序的文档。我会推荐 AngularJS (https://angularjs.org/) or React (https://facebook.github.io/react/),但还有很多选择。