【问题标题】:Mocking service module Variables dependencies for Angular unit testing模拟 Angular 单元测试的服务模块变量依赖项
【发布时间】:2017-09-07 13:44:17
【问题描述】:

我有一个角度服务,我正在为其编写单元测试,并且我正在测试的一种方法使用来自外部依赖项的模块变量,我在运行测试之前模拟并注入到 BeforeEach 中。这些变量要么只是标准数组,要么是 JSON,在原始函数中,它们是根据服务依赖方法的输出来访问的。

我已经使用 jasmine createSpy 和 callFake 模拟了这些方法,并尝试以相同的方式模拟这些变量的值,但它们返回为未定义,因此测试失败。

模拟这些变量的值的最佳方法是什么?

变量定义如下:

var module = {
   variableOne= [ a, b , c];
   variableTwo = {1, 2, 3};
};

然后我正在测试的服务方法通过例如调用它们:

DependentService.variableOne[outputOfMockedDependencyMethod];

【问题讨论】:

    标签: angular unit-testing variables service mocking


    【解决方案1】:

    在您的测试中,当您注入服务时,您可以更改它:

    it(
      'your desc',
      inject([YourService], (service: YourService) => {
        service.mockedValue = {/* all you want */};
      }));
    

    【讨论】:

    • 这是在为我正在测试的服务注入还是为依赖服务注入? Atm 我在 beforeEach 中有一个单独的依赖注入。如果是我正在测试的服务,那么变量来自外部依赖项是否重要?
    • 您在服务单元测试方面寻求帮助。如果您在 beforeEach 中执行此操作,那么您可以执行我在这里展示的相同操作!我倾向于直接在测试用例中进行,因为我通常会对我的服务进行几次模拟(以测试每一个可能的结果)
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 2021-02-28
    • 2017-09-25
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多