我正在尝试对使用自定义管道的组件进行单元测试。我想为我的测试提供transform
方法的假实现。
我发现override组件,模块,管道等是可能的,但我不知道如何覆盖组件的行为(实现)。
我试图为我提供自定义类作为管道的替代品而且它不起作用:
TestBed
.configureTestingModule({declarations: [MyPipe]})
.overridePipe(MDatePipe, {set: MyFakePipe})
我在SO How to mock Pipe when testing Component上发现了类似的问题,但建议的解决方案是创建完整的新管道并将其提供给测试模块的declarations
,这在我看来有点太多了。
如果overridePipe
不允许我覆盖transform
实施,是否可以获取已创建的MyPipe
类和spyOn
的实例?
var pipe = TestBed.get(MyPipe);
也不起作用。
答案 0 :(得分:1)
我还没有找到一种方法来覆盖Pipe的行为,所以我最终向真正的Pipe提供假服务,以便我可以模仿它的行为。
替代解决方案是根据问题How to mock Pipe when testing Component的建议为测试创建假管道实现。