我想测试一个指令是否将正确的 jquery 函数绑定到 DOM 并且它们是否有效。
例如,我想测试一个元素在使用 $.slideUp() 向上滑动后是否可见,或者我想在 html 输入上执行单击事件。
看来我需要以某种方式将编译后的指令附加到 DOM 以实现这一点。我在 youtube上观看了测试指令视频,他说这是可能的,但他没有提到你是如何做到的。
我有点卡住了。
这是失败测试的链接:http ://plnkr.co/edit/PojXf8?p=preview
我想测试一个指令是否将正确的 jquery 函数绑定到 DOM 并且它们是否有效。
例如,我想测试一个元素在使用 $.slideUp() 向上滑动后是否可见,或者我想在 html 输入上执行单击事件。
看来我需要以某种方式将编译后的指令附加到 DOM 以实现这一点。我在 youtube上观看了测试指令视频,他说这是可能的,但他没有提到你是如何做到的。
我有点卡住了。
这是失败测试的链接:http ://plnkr.co/edit/PojXf8?p=preview
几件事:
首先,如果你想在 Angular 中使用 jQuery,它需要在 Angular 之前加载,所以将它的 script 标签移到 Angular 之前。
其次,将指令附加到 DOM 是正确的。在beforeEach
调用中,您可以使用 jQuery 创建主机 div,然后在afterEach
调用中删除该 div。
也就是说,您只需要 DOM 中的 div 来检查可见性,我什至不确定在大多数情况下您是否需要这样做。例如,您可以使用 Sinon 监视slideUp
调用以确保它发生并依赖 jQuery 的测试它确实有效。
而且你总是可以直接通过elm.click()
使用 jQuery 调用来触发点击。