当前位置: 首页 > 面试题库 >

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

督翰学
2023-03-14
问题内容

在下面的示例测试中,原始提供程序名称为APIEndpointProvider,但是对于注入和服务实例化,惯例似乎是必须使用下划线将其注入。这是为什么?

'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);
  });

});

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


问题答案:

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

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

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试验中使用的是能够只是删除下划线给我们我们想要的模块。除了让我们重用相同的名称外,它什么也没

在Angular文档中了解更多信息



 类似资料:
  • 在参考Flutter教程时,我遇到了一个下划线。 null

  • 我是使用WEKA的初学者。问题是当我试图通过使用提供的测试集选择在我的模型上测试新数据集时,预测是可以的,但它在错误字段中给出了标志,这意味着什么?.此外,混淆矩阵和准确性细节给出了一些空格。 有没有可能所有的ST预测都错了?我搜索了很多来找出这个问题,但没有结果。 训练和测试数据是兼容的,测试数据是标记的。

  • 问题内容: 在闭括号前/,Python 3.4的help输出是什么意思range? 问题答案: 它象征着结束位置唯一参数,参数,你不能作为关键字参数使用。这些参数只能在C API中指定。 这意味着keyto 的参数只能通过传递,而不能作为关键字参数传递,这可以通过pure-python函数中的position参数来完成。 另请参阅Argument Clinic文档: 要将所有参数标记为中的“仅位置

  • 问题内容: 下面是代码片段。 有人可以向我解释@符号在Java中的含义吗? 问题答案: 这是一个注释。 注释是元数据的一种形式。它们提供的程序数据不属于程序本身。注释对其注释的代码的操作没有直接影响。 注释确实会影响工具和库对待程序的方式,进而会影响正在运行的程序的语义。可以从源文件,类文件中读取注释,也可以在运行时从中读取注释。

  • 问题内容: 异步在Ajax中意味着什么?以及Ajax如何知道何时在不进行服务器轮询的情况下提取数据? 问题答案: 异步意味着脚本将向服务器发送请求,并继续执行它而无需等待答复。收到答复后,立即触发浏览器事件,该事件进而允许脚本执行关联的操作。 Ajax知道何时从服务器提取数据,因为您告诉它何时进行处理。

  • 我是JMH的新手,我试图了解在基准测试期间如何应用@Params。以下是我正在使用的代码: 运行之后,我看到这些参数迭代被应用: 那么,当我使用这些@Params时,基准测试中会受到什么影响呢?使用@Params或@Measurements标注有什么区别? 先谢谢你 詹姆斯