Ng点击-如何进行行为单元测试
Ng-click - how to unit test for behaviour
当一个角度指令的模板中有一个带有ng-click属性的按钮时,我应该测试实际操作(点击)的效果,还是测试附加到ng-clic属性的函数调用的效果?
换句话说,对于一个指令,它有一个这样的模板:
<div>
<button ng-click="game.start()">start</button>
</div>
我应该测试点击功能还是game.start功能?
我知道稍后可以将函数game.start更改为其他函数。此外,ng点击可以被删除,点击事件可以用不同的方式捕捉。
使用triggerHandler("click")进行单元测试很诱人,但指令的模板也可能发生变化。这意味着我需要对DOM节点进行一些"经过验证"的访问,即通过id属性。
我应该仅仅为了单元测试而在节点上附加id属性,还是应该采取不同的方法来解决这个问题?
在指令的情况下,我通常会通过dom来单击元素。在您的情况下,这里:
it("performs some action when clicked", function() {
element.find("button").click();
assert(something);
});
即使忘记添加ng-click
指令,直接调用处理程序也会使测试通过,这不是我通常想要的。它还让您可以自由地重命名处理程序方法,而无需调整测试,从而使其不那么脆弱。
如果模板变得非常复杂,并且您只是为了测试而添加id,那么您可能需要考虑将指令分解为多个指令。
相关文章:
- Ng点击-如何进行行为单元测试
- 如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
- 使用Node.js在应用程序引擎上进行本地单元测试
- 如何使用KARMA对React JSX ES6代码进行单元测试
- 如何在JavaScript中对箭头函数进行单元测试
- 如何对具有多个$resource调用的角度控制器进行单元测试
- 如何模拟json数据进行单元测试
- 使用Jasmine进行角度单元测试:如何删除或修改spyOn
- 如何对调用getJSON的javascript函数进行单元测试
- 在C#中,我如何对客户端用户交互和javascript(jQuery)代码进行单元测试
- 如何在Angular 2中对指令进行单元测试2
- 如何进行单元测试以查看角度是否未定义
- 使用karma浏览器对AngularJS应用程序进行单元测试
- 如何在AngularJS中承诺控制器后进行单元测试
- 使用Jasmine框架对javascript进行单元测试
- 如何对生成的承诺链进行单元测试
- 如何对需要测试其发射的角度指令进行茉莉花单元测试
- 使用 Mocha 和 Sinonjs 进行的第一个异步单元测试
- 在对揭示模块进行单元测试时,如何存根私有函数
- 使用笑话对打字稿类进行单元测试(“无法读取 null 的属性'__extends'”)