如何编写一个jasmine单元测试用例来测试angularjs中的事件处理程序

时间:2014-01-27 09:53:41

标签: angularjs unit-testing jasmine

我目前正在编写一个茉莉花单元测试用例来测试按钮的点击事件。我已经为模态弹出窗口编写了以下测试用例,请找到我的plnkr here。我有一个名为Add的按钮。如果用户单击该按钮,则会打开模式弹出窗口。所以我想编写一个测试用例来查找当用户单击添加按钮时是否显示模态。我该怎么做? 谢谢, Varun Krishna。 P

1 个答案:

答案 0 :(得分:0)

首先,与所有单元测试一样,确保您没有将N个测试合并为一个 - 这总是会造成麻烦。

在您的情况下,测试可以分为2个测试:

  1. 点击Add时是否调用了正确的函数?
  2. 该功能是否显示模型对话框?
  3. 对于第一个测试,我建议您将事件处理程序的代码移动到函数中,而不是将其内联。这样,您可以覆盖测试设置中的功能并在以后恢复(伪代码):

    // setup
    var origFunc = addFunction;
    var iWasCalled = false;
    addFunction = function() { iWasCalled = true; }
    
    // test
    $('#add').click();
    
    // validation
    assert that iWasCalled is now true
    
    // tear down
    addFunction = origFunc
    

    第二个测试意味着您现在调用新函数并检查DOM中是否存在模态弹出窗口。