存在しない、私は私のテストクラスでAngular2ジャスミンSpyOn方法
export let AUTH_SERVICE = new OpaqueToken('auth.service');
export interface AuthService {
logIn(): void;
logOut(): void;
}
を次のように私はAuthService
のスタブバージョンを提供インターフェースと不透明なトークンを定義し、すなわち、
@Injectable()
class AuthServiceStub implements AuthService {
logIn(): void {}
logOut(): void {}
}
と設定しています私のテストをbeforeEach
にすると、次のようになります。
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LoginComponent ],
providers: [
{provide: AUTH_SERVICE, useValue: AuthServiceStub}
]
});
}));
テストを書き、すなわち、
it('should call log in on AuthService',() => {
let authService = fixture.debugElement.injector.get(AUTH_SERVICE);
spyOn(authService, 'logIn');
// expect will go here
});
が、私は次のエラー
Error: <spyOn> : logIn() method does not exist
を取得するためには、私が間違ってやっているものを見ることができません。何か案は?
これはランタイムエラーの場合、あなたのideまたはブラウザの 'authService'インスタンスを調べて、' logIn'メソッドが存在するかどうかを調べることができます。 – Igor
私はこれらのテストを適切にデバッグすることはできません。しかし、 'AuthServiceStub'にコンストラクタを追加してそのコンストラクタのコンソールに書き込むと(' console.log( 'CREATED') 'など)、コンソールに' CREATED'を出力することはありません。作成されている.... –