【发布时间】:2018-02-04 20:19:07
【问题描述】:
我有一个使用两个辅助类之一的组件,例如:
import {HelperA} ...
import {HelperB} ...
...
@Component({..})
export class MyComponent implements OnInit {
helper: Helper;
constructor(private ref: ElementRef, private device: MyDeviceDetectionService) {}
ngOnInit() {
if (this.device.isMobile) {
this.helper = new HelperA(this.ref);
} else {
this.helper = new HelperB(this.ref);
}
}
}
我意识到这很难进行单元测试,那么我该如何注入这些呢?理想情况下,我只需要其中一个,具体取决于isMobile 是真还是假。
【问题讨论】:
-
更新
HelperA和HelperB的代码 -
将它们重构为基类怎么样?没有注射,它们总是在那里,等等。我的问题,你的测试有什么问题?
-
我无法模拟直接导入的类(据我所知)
标签: angular unit-testing typescript dependency-injection angular2-di