javascript - 后端驱动网站的 javascript 单元测试

标签 javascript html unit-testing nightwatch.js

我实现了 NightWatch 来(行为驱动)测试几个网站。它们都是后端驱动的(Java、JSP)。

现在有些员工说这是错误的选择,它应该是一个单元测试框架。

但是前端没有任何“单元”,它只是对页面上存在的 HTML 使用react,并将一些插件/Vanilla JS 类绑定(bind)到它。

我错了吗,单元测试对于前端来说是不可能的,因为(几乎)没有简单返回值的函数。它们都在页面加载时绑定(bind)到 HTML 元素。

例如:

<div data-components="myComponent"><div>inner</div></div>

加载一些 JavaScript (myComponent),这将从页面中更改/添加/删除一些 HTML。它不会“返回”任何东西。它更新页面。

我们非常欢迎所有建议。

最佳答案

单元测试是测试代码的多种方法之一。如果您的现有代码尚未进行任何测试,那么您很可能无法使用单元测试对其进行测试。设计应用程序时必须考虑单元测试。单元测试很受欢迎,因为良好的设计和可测试性往往是齐头并进的。因此,单元测试可以被视为代码质量问题,尽管有可能编写出非常糟糕的单元测试。

话虽这么说,像用户界面这样的测试往往不属于单元测试的范围。通常不可能以可以编写有用测试的方式设计 UI 代码。这里的方法是从不可测试的部分中删除尽可能多的逻辑。

在我的公司,我们有一个用于服务器端代码和客户端代码(JS)的大型单元测试套件以及一些 Selenium 测试。您的工作很可能只涉及可通过 Selenium 测试进行测试的内容。

这取决于你正在制作什么样的东西。一些用户界面可能非常复杂和精细,您肯定想测试它们。同时,寻找单元测试的机会。

关于javascript - 后端驱动网站的 javascript 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38459946/

相关文章:

javascript - 是否有任何 json Rest 服务允许 javascript webapp 获取当前 UTC 时间?

javascript - JavaScript中如何高效地检测对象的任意键是否存在?

jquery - 如何使用带有 datalist 标签的选项标签附加图像 src?

jquery - Cheerio js html

unit-testing - 如何在 NUUnit 中测试私有(private)变量?

javascript - 如何在 Mobile Safari 中设置内容可编辑的 div 的文本插入位置?

javascript - 在这种情况下如何使用 ng-if 或其他表达式更改文本?

php - 如果选择了选项,则显示另一个选项中的值

unit-testing - 测量数据映射函数和闭包的圈复杂度

java - PowerMockito 正在调用真实方法而不是模拟私有(private)方法