天天看点

关于Angular里给Component protected方法写单元测试的技巧

本文写作背景是,我需要开发一个单元测试,能够测试到protected convertListItem方法。

关于Angular里给Component protected方法写单元测试的技巧

我直接敲service., Visual Studio Code的代码自动完成列表里,没有出现convertListItem,因为它是protected方法。但我们要知道,因为Angular TypeScript编译后生成的是JavaScript代码,而JavaScript里是不存在protected方法概念的,因此我们可以使用第244行这种动态调用的方式,实现在运行时仍然能够执行convertListItem方法的目的。

关于Angular里给Component protected方法写单元测试的技巧

其实有个更佳的做法,因为getData调用load, load调用convertListItem:

关于Angular里给Component protected方法写单元测试的技巧

所以我只需要在单元测试里对getData进行测试,一样能达到测试convertListItem的效果。

关于Angular里给Component protected方法写单元测试的技巧

继续阅读