作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Karma 和 ionic 2 的新手。现在我需要测试登录文件。下面有两个函数,有谁知道怎么测试吗?
onSignup() {
this.nav.push(SignupPage);
}
下面的函数用来知道页面发生了变化
onPageDidEnter() {
// the root left menu should be disabled on the tutorial page
console.log("enter login");
console.log("login"+JSON.stringify(this.nav));
console.log(this.nav.length());
this.menu.enable(false);
}
onPageWillLeave() {
// enable the root left menu when leaving the tutorial page
console.info("out login");
this.menu.enable(false);
}
类和导出:
export class LoginPage implements OnInit{
login: {username?: string, password?: string} = {};
submitted :boolean = false;
//let user ="";
//let pass ="";private userData: UserData,
constructor(private nav: NavController,
private menu : MenuController,
private loginProvider : LoginProvider) {}
有人知道如何测试这些代码吗?因为当我只是调用这个函数并想这样测试时:
expect(logins.onSignup()).toHaveBeenCalled(true);
错误
TypeError: undefined is not an object (evaluating 'this.nav.push')
最佳答案
这是关于如何使用 Karma
和 Jasmine
对其进行测试的模拟。有关测试的更多信息,您可以查看角度 TestBed
.
let component = fixture.component;
spyOn(component.nav.push).and.stub();
component.onSignup();
expect(component.nav.push).toHaveBeenCalledWith(SignupPage);
关于unit-testing - 如何在ionic2中使用Karma测试this.nav.push和this.menu.enable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37700202/
我是一名优秀的程序员,十分优秀!