sinon.js
、mocha
、の新生児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
です。
何が間違っているのか教えてください