【发布时间】:2017-05-16 22:12:39
【问题描述】:
这可能是 Ionic 2 唯一的问题,因为我在 Angular 2 文档中没有看到 NavParams,但有些概念可能会翻译,所以我标记了两者。
鉴于我调用navparams.get('somekey') 是为了监听传入的参数,因此在测试中模拟 NavParams 是很棘手的。
例如,这是我目前的做法:
export class NavParamsMock {
public get(key): any {
return String(key) + 'Output';
}
}
这适用于真正的基本测试,但如果我有一个组件,我必须测试它gets 一个特定类型的Object,例如User。
然后,我可以做类似的事情
export class NavParamsMock {
public get(key): any {
if (key === 'user') {
return new User({'name':'Bob'})
}
return String(key) + 'Output';
}
}
但是,如果您想在另一个测试甚至另一个组件的规范中使用get(user),这不起作用。假设您在 2 个不同的组件中使用 NavParams,并且当您执行 get(user) 时它们都期望不同的结果,模拟变得越来越棘手。
有没有人找到解决这种情况的方法?
【问题讨论】:
标签: unit-testing angular ionic2 angular2-testing