gpt4 book ai didi

unit-testing - Jasmine 使用 templateUrl 测试 AngularJS 指令

转载 作者:行者123 更新时间:2023-12-03 05:25:31 25 4
gpt4 key购买 nike

我正在使用 Jasmine 为 AngularJS 编写指令测试,并将 templateUrl 与它们一起使用:https://gist.github.com/tanepiper/62bd10125e8408def5cc

但是,当我运行测试时,我收到要点中包含的错误:

Error: Unexpected request: GET views/currency-select.html

从我在文档中读到的内容来看,我认为我的做法是正确的,但事实似乎并非如此 - 我在这里错过了什么?

谢谢

最佳答案

如果您使用 ngMockE2E 或 ngMock:

所有 HTTP 请求均使用您指定的规则在本地进行处理,没有 会传递到服务器。由于模板是通过 HTTP 请求的,因此它们也在本地进行处理。由于您没有指定当您的应用尝试连接到 views/currency-select.html 时要执行的任何操作,因此它会告诉您它不知道如何处理它。您可以轻松地告诉 ngMockE2E 传递您的模板请求:

$httpBackend.whenGET('views/currency-select.html').passThrough();

请记住,如果您愿意,您还可以在路由路径中使用正则表达式来传递所有模板。

文档对此进行了更详细的讨论:http://docs.angularjs.org/api/ngMockE2E.$httpBackend

否则使用这个:

您需要使用$injector来访问新的后端。从链接的文档:

var $httpBackend;
beforeEach(inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET('views/currency-select.html').respond(200, '');
}));

关于unit-testing - Jasmine 使用 templateUrl 测试 AngularJS 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14761045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com