javascript - 在 Karma+Jasmine 测试中读取 HTML 文件

标签 javascript angularjs karma-jasmine

我有一个 Angular Controller ,它定义了一个包含 50 多个字段名称的数组。这些都应该出现在 HTML 文件中,因为输入的 id 和 ng-model 都存在。我想通过阅读和解析 HTML 文件来测试我是否没有拼写错误。由于我需要获取数组,因此 Karma+Jasmine 测试似乎是理想的(使用 Protractor 我无法获取)。测试这个的好方法是什么?

对于 FileReader$http.get 都没有输入成功或错误函数,而对于 XMLHttpRequest 我只是得到一个空字符串.

我已经添加了一行

pattern: 'app/views/*.html', watched: false, included: false, served: true}

到 karma.conf.js,匹配我想读取的文件。

非常感谢任何帮助。

最佳答案

1.您可以使用以下预处理器来呈现 html

  • npm 安装 karma-ng-html2js-preprocessor --save-dev

将以下内容添加到 karma.config.js 中:

ngHtml2JsPreprocessor : {
      moduleName:'templates'
},

2.使用angular的$compile服务创建你要测试的html并添加到dom中。然后你可以对该 html 执行任何测试

var $body=$('$body');
afterEach(
    $body.empty();
);

关于javascript - 在 Karma+Jasmine 测试中读取 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28410644/

相关文章:

javascript - 如何在 flexbox carousel 的中间正确定位上一个和下一个按钮?

javascript - native 无法找到图像 './expo-asset/assets/${your_img_path}' 在 React Native/Expo 中找不到

javascript - Angular 认证: Avoid multiple resolve for different routes

angular - ng 测试没有 Http 的提供者!错误

javascript - 强行在 karma 中拒绝 promise

javascript - 合并两个对象数组并跳过具有相同 ID 属性的对象

javascript - 为 JavaScript 函数计时

json - 加载 Angular UI Bootstrap Datepicker 时将日期字符串解析为 Date 对象

javascript - Angular 。在指令中生成指令。我的示波器在哪里?

Angular 模拟多个 HTTP 调用