1
我刚刚开始使用Angular2,但我尝试测试我编写的每个组件。测试具有传递依赖性的Angular2组件
当我编写组件测试时,我必须初始化TestBed,以便测试组件可以解决所有(传递)依赖关系。
现在我能想到的三种方法
- 含试验下的部件导入整个模块 - 它应该申报或导入所有必需的依赖
- 显式声明的测试代码
- 模拟所有所有的依赖依赖关系 - 所以他们没有自己的依赖关系
我想第一个解决方案可能会导致问题,当我需要嘲笑的东西,在主模块中声明。第二个需要我手动更改所有依赖测试,当我尝试添加任何新的依赖关系组件。我没有测试第三个,所以我不知道它是否可行。
处理这个问题的最佳方法是什么?
虽然这是它有很多的限制,因为你只是嘲讽标签不更换类的实现本身一个有效的方法。像这样的东西不会工作。 '@ViewChild(SubComponent)sc;然后再调用sc.callFn()'。由于模拟实现具有不同的类名,所以Testbed注入器将永远不会找到这个类。 – Julian