gpt4 book ai didi

testing - 在 Karma 测试中访问 AngularJS 应用服务

转载 作者:行者123 更新时间:2023-11-28 20:12:00 24 4
gpt4 key购买 nike

我正在尝试在 Karma 中为 angularJS 应用程序编写端到端测试。我有自动填写表格并发布的功能。结果应该是一个对象,可以通过调用自定义服务“UserService”来访问它——好吧,至少在应用程序代码中是这样。但是我如何在我的测试代码中访问这个服务呢?我希望能够写:

expect(UserService.parent.firstname).toEqual('Jack');

我已经尝试通过线路包括服务

beforeEach(module('App'));

在e2e测试代码中。但我得到的只是“Uncaught ReferenceError: module is not defined”。

应用模块被定义为“App”:

var myApp = angular.module('App', ['App.filters', 'App.services'])....

该服务被定义为“App”模块的一部分:

myApp.factory('UserService', ['webStorage', function(webStorage) {...

我刚刚在此处包含了定义,因为我已经知道应用程序和服务的工作原理。如何使用测试中的服务?我不想 mock 它,只是使用它。

最佳答案

您只需将它添加到带有 inject() 的 beforeEach() block 中。

这应该有效:

var uService;

beforeEach(inject(function (UserService) {
uService = UsersService;
}));

然后将其用作 uService.parent.firstname

我还看到您将 App.services 作为主应用程序模块的依赖项,但您仍然将该服务定义为主应用程序模块的一部分,而不是 App.services 模块的一部分。有意还是无意?

关于testing - 在 Karma 测试中访问 AngularJS 应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18058330/

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