【发布时间】:2016-02-17 22:48:50
【问题描述】:
我有一个使用以下指令的简单 Ionic2 组件:
@View({
templateUrl: 'build/components/checkinDateInput/checkinDateInput.html',
directives: [ FocusDirective, Item, Label, TextInput ],
})
测试时出现错误:No provider for Form! (Item -> Form)
我已尝试将提供程序添加到我的规范中:
beforeEachProviders(() => [Form]);
但是,Form 在 Ionic 中是私有的,因此我似乎无法导入它 (ionic-framework/util/form.d.ts):
/**
* @private
*/
export declare class Form {
private _blur;
...
error TS2305: Module '".../node_modules/ionic-framework/ionic"' has no exported member 'Form'.
由于无法导入,我无法在 beforeEachProviders 中模拟它,因为 Form 将是未定义的。
beforeEachProviders(() => [
provide(Form, {useClass: MockForm})
]);
我应该能够导入Form 还是我走错了路?
【问题讨论】:
-
经过最后一个小时的折腾,我能完成这项工作的唯一方法是在 ionic 中导出表单(例如,覆盖他们将其设为私有的事实).. 显然这不是解决问题的方法去吧,我会向 Ionic 提出这个问题,看看他们推荐什么。
标签: unit-testing angular ionic2