单元测试错误 - ngx-config

时间:2017-12-19 07:35:41

标签: angular unit-testing jasmine karma-jasmine

我刚开始为Angular 4应用程序编写单元测试用例。所以这可能很容易。

我们正在使用@ngx-config的ConfigService。我们编写了如下的ConfigurationService。

ConfigurationService.service.ts

@Injectable()
export class ConfigurationService{
    constructor(private configService: ConfigService){}

    public get urls(): Urls {
       return (this.configService.getSettings() as IConfiguration).urls;
    }
}

// configuration.ts
export interface Urls {
   user: string;
   application: string;
}
export interface IConfiguration{
  urls: Urls;
}

现在在组件内部,我们使用此服务来获取我们在config.dev.json中定义的URL。

在user.component.ts

   import {ConfigService} from "@ngx-config/core";

   config: ConfigurationService;

   constructor(private cs: ConfigService){
      this.config = new ConfigurationService(cs);
   }

   ngOnInit(){
     const userUrls: Urls = this.config.urls.user;
   }

现在在我的user.component.spec.ts

describe('UserComponent', () => {
   beforeEach(async(() => {
       TestBed.configureTestingModule({
         imports: [
            // all other imports
            ConfigModule.forRoot()
         ]
       }).compileComponents();
   }));

   beforeEach(() => {
     fixture = TestBed.createComponent(UserComponent);
     component = fixture.componentInstance;
     fixture.detectChanges();
     component.ngOnInit();
   });

   it('should create', () => {
     expect(component).toBeTruthy();
   });
});

这会引发错误。

  

TypeError:无法读取未定义的'urls'的属性。

TIA。

0 个答案:

没有答案