簡體   English   中英

Ng-click - 如何對行為進行單元測試

[英]Ng-click - how to unit test for behaviour

當一個角度指令在其模板中有一個帶有ng-click屬性的按鈕時,我應該測試實際操作(點擊)或附加到ng-click屬性,函數調用的效果嗎?

換句話說,對於一個指令,它有一個這樣的模板:

<div>
    <button ng-click="game.start()">start</button>
</div>

我應該測試點擊功能或game.start功能的作用嗎?

我知道后來函數game.start可以更改為另一個。 此外,可以刪除ng-click,並以不同的方式捕獲click事件。

使用triggerHandler('click')進行單元測試很有誘惑力,但是指令的模板也可以改變。 這意味着我需要對DOM節點進行一些“經過驗證的”訪問,即通過id屬性。

我應該僅僅為了單元測試而在節點上附加id屬性,還是應該對問題采取不同的方法?

在指令的情況下,我通常會通過dom來單擊元素。 在你的情況下:

it("performs some action when clicked", function() {
    element.find("button").click();

    assert(something);
});

即使您忘記添加ng-click指令,直接調用處理程序也會讓您通過測試,這不是我通常想要的。 它還使您可以自由地重命名處理程序方法,而無需調整測試,從而使其不那么脆弱。

如果模板變得非常復雜並且您只是為了測試而想要添加id,那么您可能需要考慮將指令分解為多個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM