gpt4 book ai didi

angularjs - _servicename_ 中的下划线在 AngularJS 测试中意味着什么?

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

在下面的示例测试中,原始提供程序名称是 APIEndpointProvider,但对于注入(inject)和服务实例化,约定似乎是必须用下划线包裹它进行注入(inject)。这是为什么?

'use strict';

describe('Provider: APIEndpointProvider', function () {

beforeEach(module('myApp.providers'));

var APIEndpointProvider;
beforeEach(inject(function(_APIEndpointProvider_) {
APIEndpointProvider = _APIEndpointProvider_;
}));

it('should do something', function () {
expect(!!APIEndpointProvider).toBe(true);
});

});

我缺少更好的解释的约定是什么?

最佳答案

下划线是一种方便的技巧,我们可以使用它以不同的名称注入(inject)服务,以便我们可以在本地分配与服务同名的局部变量。

也就是说,如果我们做不到这一点,我们就必须在本地使用其他服务名称:

beforeEach(inject(function(APIEndpointProvider) {
AEP = APIEndpointProvider; // <-- we can't use the same name!
}));

it('should do something', function () {
expect(!!AEP).toBe(true); // <-- this is more confusing
});

测试中使用的$injector只需删除下划线即可为我们提供我们想要的模块。除了让我们重复使用相同的名称之外,它不会做任何事情。

Read more in the Angular docs

关于angularjs - _servicename_ 中的下划线在 AngularJS 测试中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318096/

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