4

我想测试一个指令是否将正确的 jquery 函数绑定到 DOM 并且它们是否有效。

例如,我想测试一个元素在使用 $.slideUp() 向上滑动后是否可见,或者我想在 html 输入上执行单击事件。

看来我需要以某种方式将编译后的指令附加到 DOM 以实现这一点。我在 youtube上观看了测试指令视频,他说这是可能的,但他没有提到你是如何做到的。

我有点卡住了。

这是失败测试的链接:http ://plnkr.co/edit/PojXf8?p=preview

4

1 回答 1

5

几件事:

首先,如果你想在 Angular 中使用 jQuery,它需要在 Angular 之前加载,所以将它的 script 标签移到 Angular 之前。

其次,将指令附加到 DOM 是正确的。在beforeEach调用中,您可以使用 jQuery 创建主机 div,然后在afterEach调用中删除该 div。

这是你的一个叉子

也就是说,您只需要 DOM 中的 div 来检查可见性,我什至不确定在大多数情况下您是否需要这样做。例如,您可以使用 Sinon 监视slideUp调用以确保它发生并依赖 jQuery 的测试它确实有效。

而且你总是可以直接通过elm.click()使用 jQuery 调用来触发点击。

于 2013-02-14T23:50:11.307 回答