我实现了 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/