Javascript 在Karma+中读取HTML文件;茉莉花试验

Javascript 在Karma+中读取HTML文件;茉莉花试验,javascript,angularjs,karma-jasmine,Javascript,Angularjs,Karma Jasmine,我有一个角度控制器,它定义了一个超过50个字段名的数组。当输入的id和ng模型都存在时,它们都应该出现在HTML文件中。我想通过阅读和解析HTML文件来测试我是否没有输入错误。因为我需要获得阵列,所以Karma+Jasmine测试似乎很理想(使用量角器我无法获得)。什么是测试这个的好方法 对于FileReader和$http.get都不输入success或error函数,使用XMLHttpRequest我只得到一个空字符串 我已经加了一行 pattern: 'app/views/*.html',

我有一个角度控制器,它定义了一个超过50个字段名的数组。当输入的id和ng模型都存在时,它们都应该出现在HTML文件中。我想通过阅读和解析HTML文件来测试我是否没有输入错误。因为我需要获得阵列,所以Karma+Jasmine测试似乎很理想(使用量角器我无法获得)。什么是测试这个的好方法

对于
FileReader
$http.get
都不输入success或error函数,使用
XMLHttpRequest
我只得到一个空字符串

我已经加了一行

pattern: 'app/views/*.html', watched: false, included: false, served: true}
对于karma.conf.js,这与我想要读取的文件相匹配


非常感谢您的任何帮助。

在我遇到这样的示例问题后,请调用“服务器”-数据,而不使用模型服务。 我无意中发现了这个条目:

工作正常,使用它您可以使用$http.get并检查数据


如果您正在使用Promissions,请尝试以下操作:

您可以将HTML片段作为fixture加载。不要对这个名字感到奇怪,因为这个库还添加了很多与jQuery结合使用的有用的东西

要使用它,请将karma配置文件中的以下内容添加到
文件
数组中:

// this is the path to your library if installed via bower
'../bower_components/jasmine-jquery/lib/jasmine-jquery.js', 

// make the views available to the locally by karma started webserver 
{pattern: 'views/*.html', watched: true, served: true, included: false},
对于测试,必须定义视图的路径并显式加载它们:

beforeEach(function () {
    jasmine.getFixtures().fixturesPath = "base/views";  // path to your templates
    jasmine.getFixtures().load('myHtmlSnippet.html');   // load a template
});

这将把id为jasmine fixtures的
div
直接加载到运行测试的浏览器的
主体中。加载的夹具将插入
div#jasmine夹具
。然后,您可以简单地使用jQuery或vanilla javascript访问它们

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

  • npm安装karma-ng-html2js-preprocessor——保存开发
将以下内容添加到karma.config.js中:

ngHtml2JsPreprocessor : {
      moduleName:'templates'
},
2.使用angular的$compile服务,创建要测试的html并将其添加到dom中。然后可以对该html执行任何测试

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

我不是在做端到端测试,也许我应该澄清一下。所以我不需要这个。我确实试过了,但没有解决我的问题。