我做了什么,不知道是否是一种好方法,是使用Ionic Native对象的实例设置组件的属性,并在测试时用模拟覆盖此属性。与AppVersion例如:
component.ts
import { AppVersion } from 'ionic-native';
export class YourComponent {
public appVersion: any = AppVersion;
//etc
}
在component.spec.ts
import { AppVersionMock } from '../../mocks';
describe('YourComponent',() => {
//creates fixtures, get instance, etc...
//in some assertion
it('should have new version number', fakeAsync(() => {
fixture.componentInstance.appVersion = new AppVersionMock()
})
})
和mocks.ts有类似
export class AppVersionMock {
version = 20;
public getVersionNumber() {
return new Promise((resolve, reject) => {
resolve(this.version)
});
}
}