Unit testing 如何在ionic2中使用Karma测试this.nav.push和this.menu.enable
我是《因果报应》和《离子2》的新手。现在我需要测试登录文件。下面有两个函数,有人知道如何测试它们吗Unit testing 如何在ionic2中使用Karma测试this.nav.push和this.menu.enable,unit-testing,navbar,ionic2,Unit Testing,Navbar,Ionic2,我是《因果报应》和《离子2》的新手。现在我需要测试登录文件。下面有两个函数,有人知道如何测试它们吗 onSignup() { this.nav.push(SignupPage); } 下面的函数用于知道页面已更改 onPageDidEnter() { // the root left menu should be disabled on the tutorial page console.log("enter login"); console.log
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
测试它的模拟。有关测试的更多信息,请查看angular
我想知道你有没有用这个?我还需要测试push方法,但我不知道如何模拟它。获取错误:error::push()方法不存在,这是我的问题-
let component = fixture.component;
spyOn(component.nav.push).and.stub();
component.onSignup();
expect(component.nav.push).toHaveBeenCalledWith(SignupPage);