我在为方法本质上是公共静态的服务编写Jasmine-karma测试用例。我如何无法在spec.ts文件中访问它们或为它们编写测试用例。谁能告诉我如何?
这是我在app.service.ts中的方法
public static getModifiedDate(dateVal: any): string {
if ('' === dateVal) {
return null;
}
const year = dateVal.substring(
dateVal.lastIndexOf('/') + 1,
dateVal.length
);
const month = dateVal.substring(0, dateVal.indexOf('/'));
const date = dateVal.substring(
dateVal.indexOf('/') + 1,
dateVal.lastIndexOf('/')
);
return year + '-' + month + '-' + date;
}
在spec.ts文件中,我无法像我尝试的那样编写此功能的测试用例,
describe('AppService', () => {
let service: AppService;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [RestClientService, AppService]
});
service = TestBed.get(AppService);
}));
it('getModifieddate should return date in the expected format', () => {
const date = service.getModifiedDate('04/20/2017');
expect(date).toEqual('2017-04-20');
});
});
由于getModifiedDate是公共静态方法,因此显示错误。解决此问题的正确方法是什么?
您应该以静态方式调用static方法:AppService.getModifiedDate
。该测试可以简化如下:
describe('AppService', () => {
it('getModifieddate should return date in the expected format', () => {
const date = AppService.getModifiedDate('04/20/2017');
expect(date).toEqual('2017-04-20');
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句