在不使用jquery-jasmine的情况下将夹具添加到Jasmine。可能吗?

时间:2014-04-02 12:01:09

标签: jquery html jasmine

我最近从jQuery转移到min.js用于移动网络应用程序,而Jasmine测试现在失败了。以前,所有灯具都将使用jquery-jasmine加载,但现在我只剩下min.js和纯js。

有没有办法在没有jquery-jasmine的情况下加载HTML fixtures,即茉莉花是否支持以某种方式直接注入HTML或是否有其他库那样做?

我确实有搜索但找不到任何内容。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

我也在同一条船上。这可能不是使用带有vanilla Javascript的HTML装置的最佳解决方案,而是一个开始。

使用http://karma-runner.github.io/0.12/index.html作为测试运行器,安装https://github.com/karma-runner/karma-html2js-preprocessor并按照说明在您的karma配置文件中进行配置。 此插件会将您的HTML文件转换为Javascript,并将其存储在 __ html __ [“myFixture.html”]变量中。在Jasmine测试中访问变量时,请确保包含karma配置文件基本路径所在的完整路径。从那里,您可以将其应用于DOM变量中的任何位置,从document.body.innerHTML和document.body.outerHTML属性到更远。

当我需要测试一个通过DOM操作css类名和html标签的javascript模块时,这个解决方案对我有用。

我使用了两种不同的灯具,并没有在所有主流浏览器中出现重大测试问题。问题的一个小问题是IE 11和10(因为它不允许修改document.body.outerHTML变量)。我不得不从测试中取出afterEach函数(设置document.body.outerHTML =“”;)来传递IE。由于DOM被beforeEach函数中的加载夹具所取代,因此不会造成很大的损失,但更多的是不必要的冗余。

希望这有用。

迈克尔