1

sinon.jsmocha、の新生児chaiです。上記のライブラリを使用して単体テストを作成しようとしています。Project Front-End はAngularJSの組み合わせで入っていECMASCRIPT6ます。

Sinonjs私は何も理解していないのドキュメントから!それは複雑です。

これが私のJSスニペットです:

login() {
    let loginData = this.loginData;
    return this.authService.login(loginData).then(userData => {
      let msg = `${this.niceToSeeYouAgain} ${userData.email}!`;
      this.userAlertsService.showSuccessToast(msg);
      this.navigationService.afterLoggedIn();
    }, errorInfo => {
      this.userAlertsService.showAlertToast(errorInfo);
    });
}

そして、ここに私のUNIT-TESTスニペットがあります:

it('.login() - should load user data and showSuccessToast and call navigationService afterLoggedIn', sinon.test(() => {

    let msg = `Nice to see you again ${userData.email}!`;

    let loginData ={
      email: "sarfaraz@walkover.in",
      password: "designer99",
      remember: true
    }

    let stub = sinon.stub(authService, 'login').resolves(userData);

    // let spy1 = sinon.spy(controller.userAlertsService, 'showSuccessToast');

    //call function
    controller.login();
    $timeout.flush();

    // expect things
    expect(stub.called).to.eq(true);


    // restore
    stub.restore();

}));

しかし、残念ながら立ち往生しています。私のコードは.then行の後に実行されません。

エラーがスローされるはずです。私は と をスパイしていないuserAlertsServiceからnavigationServiceです。

何が間違っているのか教えてください

4

0 に答える 0