gpt4 book ai didi

unit-testing - 如何在ionic2中使用Karma测试this.nav.push和this.menu.enable

转载 作者:行者123 更新时间:2023-12-02 04:40:53 25 4
gpt4 key购买 nike

我是 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')

最佳答案

这是关于如何使用 KarmaJasmine 对其进行测试的模拟。有关测试的更多信息,您可以查看角度 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com