我是<h:commandLink action="#{myClass.downloadFile}" alt="Download File">
<div class='proceed' title="Download"></div>
</h:commandLink>
,sinon.js
,mocha
的新生儿。
我试图通过使用上面的库来编写单元测试。
项目前端位于chai
,AngularJS
。
从ECMASCRIPT6
的文档中我什么都不懂!这太复杂了。
这是我的JS片段:
Sinonjs
这是我的UNIT-TEST片段:
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);
});
}
但不幸的是我被困住了。
我的代码不会在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
。
请让我知道出错了什么