【问题标题】:Setting up a Test Bed in Ionic Provider在 Ionic Provider 中设置测试台
【发布时间】:2018-04-03 06:19:08
【问题描述】:

我对 Ionic 和单元测试非常陌生。当前版本是 3.12.0。我正在使用 Karma 和 Jasmine 进行单元测试。

我有一个名为 test-service.ts

的提供程序
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

/*
  Generated class for the TestServiceProvider provider.

  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class TestServiceProvider {

  constructor(public http: Http) {
    console.log('Hello TestServiceProvider Provider');
  }

}

然后我在同一个文件夹中有一个测试规范,如下所示,其中包含一个带有测试台的简单测试。

import { TestServiceProvider } from './test-service';
import { TestBed, TestModuleMetadata, async, ComponentFixture } from '@angular/core/testing';

describe('Test Service', () => {
  let component: TestServiceProvider;
  let fixture: ComponentFixture<TestServiceProvider>;

  beforeEach(async( () => {
    TestBed.configureTestingModule({
      imports: [TestServiceProvider]
    }).compileComponents;
  }));

  beforeEach( () => {
    fixture = TestBed.createComponent(TestServiceProvider);
    component = fixture.componentInstance;
  });

  it('should add numbers', () => {
    expect(1+1).toBe(2);
  });
});

但是当我运行npm test 时,它给了我一个错误

Unexpected value 'TestServiceProvider' imported by the module 'DynamicTestModule'. Please add a @NgModule annotation.

我在这里做错了什么,我该如何解决这个问题?

【问题讨论】:

    标签: unit-testing ionic-framework karma-jasmine


    【解决方案1】:

    TestServiceProvider 必须在声明中而不是在 Imports 中

    更改您的代码如下:

    beforeEach(async( () => {
        TestBed.configureTestingModule({
          declarations: [TestServiceProvider]
        }).compileComponents;
      }));
    

    【讨论】:

    • 我使用了上面的代码,现在报错Unexpected value 'TestServiceProvider' declared by the module 'DynamicTestModule'. Please add a @Pipe/@Directive/@Component annotation.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    相关资源
    最近更新 更多