には存在しません。私はこのboilerplateの上にイオンアプリを構築しています。 今、特定のページのテストを構築しています。ジャスミンを使用してプロバイダをモックし、メソッドの予想される動作を設定しています。Ionic + Jasmine + Tslint - プロパティ 'and'はタイプ
mockGeolocation.getCurrentPosition.and.callFake(() => {
return {then: () => { }};
});
私はtslintの間を使用しています:問題は、私はgetCurrentPositionメソッドの約束のリターンを定義するときに起動する
beforeEach(() => {
mockLoadingController = jasmine.createSpyObj('ModalController', ['create', 'present', 'dismiss']);
mockLoadingController.create.and.returnValue(mockLoadingController);
mockModalController = jasmine.createSpyObj('LoadingController', ['create', 'present',
'onDidDismiss', 'dismiss']);
mockModalController.create.and.returnValue(mockModalController);
mockGeolocation = jasmine.createSpyObj('Geolocation', ['getCurrentPosition']);
mockGeolocation.getCurrentPosition.and.callFake(() => {
return {then: () => { }};
});
mockEvents = jasmine.createSpyObj('Events', ['publish', 'subscribe']);
TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [
{ provide: NavController, useValue: mockNavController },
{ provide: LoadingController, useValue: mockLoadingController },
{ provide: ModalController, useValue: mockModalController },
{ provide: Geolocation, useValue: mockGeolocation },
{ provide: Events, useValue: mockEvents },
LocationPage,
],
},
); });
:ようbeforeEach()メソッドはルックスどのように見えるかだ テストすると、次のエラーが表示されます。
ERROR in [at-loader] ./src/pages/location/location.page.spec.ts:24:40
TS2339: Property 'and' does not exist on type '(options?: GeolocationOptions) => Promise<Geoposition>'.
問題は、この問題をどのように克服して、TSLintがこのコードについてもう苦情を受けないようにすることができますか?
あなたの問題はtslintではないようです。あなたのコード 'mockGeolocation.getCurrentPosition.and.callFake'は間違っています。私はそれが 'mockGeolocation.create.and.getCurrentPosition ....'のようなものである必要があると思います。他のモックのパターンを見てください(例えば、 'mockModalController')。 – Diullei