我刚开始为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。