离子测试 - 异步查找ionViewDidLoad中的更改

时间:2017-12-04 09:28:48

标签: ionic-framework jasmine

我在尝试测试 ionViewDidLoad 方法中变化的变量值时遇到了麻烦

welcomepage.ts

@Component({...})
export class WelcomePage {

    test: number = 0;

    constructor(){}

    ionViewDidLoad(){
        this.test = 1;
    }

}

welcomepage.spec.ts

    it('test should equal be equal to 1', () => {
        fixture.detectChanges();
        expect(component.test).toBe(1)
    });

但是这个测试没有成功。如果我在构造函数(this.test = 1)中进行更改,那么它正在工作。

========更新========

似乎离子触发的ionViewDidLoad函数存在问题,它通常通过运行离子而不是在测试中工作。

2 个答案:

答案 0 :(得分:1)

在测试过程中似乎没有调用离子生命周期事件(ionViewDidEnter,ionViewDidLoad,...),通过手动调用它可以工作:

<p>First p</p>
<p></p>
<p>"Second" p</p>
<p> </p>
<p><img class='image' src='image.jpg' /></p>
<p> </p>
<p><img class='image' src='second.jpg' /></p>

但那么我们如何确定离子确实称为ionViewDidLoad?

答案 1 :(得分:0)

您的变量未设置,因为您以错误的方式完成了此操作。您的变量名称是test,您在变量类型number中设置值。请参阅以下代码段,希望它有所帮助。

@Component({...})
export class WelcomePage {

   test: number = 0;

   constructor(){}

   ionViewDidLoad(){
       this.test = 1;
   }
}