2

目前,我正在与我公司的程序员和 UX 合作,创建一个模式/组件库以在我们的软件中使用。把它想象成我们自己的版本,比如 Twitter Bootstrap、jQuery UI 或 Yahoo! 设计模式库。

我将使用 HTML5、CSS3 和 jQuery(可能使用 CoffeeScript)创建这个库。我应该使用像 Jasmine 这样的库来测试我的 js 吗?我问的原因是因为任何使用 jQuery 的组件都不会真正做比花哨的效果更多的事情。所以,我想,是否值得测试诸如“这个按钮在悬停时改变类吗?”之类的东西。或“我的手风琴菜单工作正常吗?”

我不熟悉简单前端代码的测试实践,所以我想要一些建议。

4

3 回答 3

1

我说在那里进行浏览器测试,您可以使用 Jasmine 或 Selenium(我尝试尽可能多地使用 Selenium)。

除了基本的“它是否像它应该的那样工作”测试之外,当对 jQuery 之类的东西进行重大更新时,您可以快速重新运行您的测试套件并查看失败的地方。这将为您节省大量时间,并且一旦您解决了问题(如果有的话),您就可以为下一个问题做好准备。

于 2013-04-09T18:02:42.993 回答
0

如果你的 javascript 中有逻辑,那么单元测试是有意义的。为此保留一个测试套件。

此外,专注于测试端到端的东西的系统测试。在您的情况下,使用 selenium 之类的工具进行浏览器测试也很重要。这有助于解决库更新时的回归问题,特别是对于库更新频繁或有时库相互交换的 JS。

于 2013-04-09T18:07:24.697 回答
0

我发现将 BDD 与库和框架一起使用的最佳方法之一是创建一些实际使用该框架的小型应用程序。然后,这些还为需要知道如何使用它的任何其他人提供文档。这实际上是大多数 BDD 框架本身(JBehave、Cucumber 等)的设计方式。你可以在这里看到一个类似的例子,我使用宠物店来驱动自动化工具,并围绕宠物店编写场景。

为了美观,您可能无论如何都要手动测试它们,@ashutosh-raina 建议在这里对任何逻辑进行单元测试非常棒。当您为玩具应用程序编写场景时,请关注他们可以做什么而不是他们如何做,您可能会发现您在全栈级别涵盖了大部分功能。不要担心强迫它,因为单元测试会完成其余的工作。我链接到的示例是 .NET,但应该让您了解我的意思。

玩具应用程序的另一个好处是,如果您收到新请求,通常可以找到一种方法来添加某些内容或更改应用程序以演示该请求,然后轻松添加并确保它有效。

如果您编写了太多场景,您的套件将很快变得无法维护,并使您的代码更难更改,这与您想要的完全相反。

于 2013-04-15T09:39:43.493 回答