AngularJs测试。在哪里放模板

时间:2015-06-30 11:09:12

标签: javascript angularjs unit-testing karma-runner angular-template

我目前正在测试angularjs指令。该指令有一个templateUrl。我会测试视图,以确保它被正确初始化,即正确的按钮数量,隐藏的某些元素。

我遇到的问题是,当我将html文件插入模板缓存时,我仍然得到:

"message": "Unexpected request: GET partials/stuff/stuff-leader.html

我认为当我使用templateCache时,我将不再需要使用:

 $httpBackend.whenGET("partials/stuff/stuff-leader.html").respond([{
        userId: 000
    }]);

但似乎并非如此。我想知道我是否正确插入模板,以下是我的工作方式:

 template = $templateCache.get('/full/root/disk/path/to/file/stuff/stuff-leader.html');
    $templateCache.put('/myApp/templates/stuff-leader.html',template);

这是正确的,还是应该把它放在其他地方?

2 个答案:

答案 0 :(得分:1)

您正在使用$templateCache.get执行请求。而是做:

 beforeEach(inject(function ($templateCache) { $templateCache.put('partials/stuff/stuff-leader.html', '< div >...TemplateCode....< /div >'); })); 

答案 1 :(得分:1)

/partials/stuff/stuff-leader.html处查找您的普通模板,因此您需要注入模板缓存而不是/myApp/templates/stuff-leader.html