【问题标题】:Unit testing javascript of a backend driven website后端驱动网站的单元测试 javascript
【发布时间】:2016-07-19 13:25:12
【问题描述】:

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

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

但前端没有任何“单元”,它只是对页面上存在的 HTML 做出反应,并将一些插件/Vanilla JS 类绑定到它。

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

例如:

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

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

欢迎所有建议。

【问题讨论】:

    标签: javascript html unit-testing nightwatch.js


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 正是我在想.. 它不是一个 SPA (a.k. Angular 等).. 你用 1 个模型调用 1 个视图.. 它返回一些现成的 HTML.. 甚至 JS 函数倾向于简单地“调用插件”或“添加一些 HTML”。你所能做的就是调用一个函数,并检查 DOM 是否反映了一些变化
    猜你喜欢
    • 2011-05-23
    • 2011-08-29
    • 2016-06-07
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多