AngularJS Karma - 如何在测试中触发指令attr。$ observe?

时间:2015-11-04 17:56:08

标签: angularjs karma-runner

我正在尝试测试一个指令,其中我有一段观察属性的代码:

Sub test()
    MsgBox UserForm.CommandButton1.Value
End Sub

我有一个测试可以做到这一点:

    function linkFn(scope, element, attrs) {

        attrs.$observe('myattr', function() {
            console.log('do something');

2 个答案:

答案 0 :(得分:0)

好的,它是不同的:您必须将该属性添加到指令:

var html = '<my-directive myattr=""></my-directive>';

http://plnkr.co/edit/I2nngQtEUyxBbcGrdtTJ?p=preview

答案 1 :(得分:0)

通常,我更喜欢给变更处理程序命名(使其成为指令的成员,或者更好地将所有逻辑放在嵌入式控制器中),然后在测试中直接调用它。否则,你正在测试角度基础设施,这对你没有任何帮助。单元测试应该相信框架可以工作(这就是我们使用模拟的原因)并测试你自己的代码。功能和集成测试将告诉您是否已正确设置框架。