【发布时间】:2019-08-04 11:47:34
【问题描述】:
我正在使用 NestJS(使用 TypeScript)制作一个 API,它使用 JestJS 作为默认测试框架。我正在为服务类编写测试,并尝试访问其私有函数(使用 TypeScript 强制执行),但由于明显的原因我不能。
其他语言(如 Java)的传统解决方案是将函数更改为 package 或 internal 范围内,但这在 TypeScript 中不存在。
我怎样才能访问这些功能以进行测试,但仍强制执行私有访问(作为良好做法)?
【问题讨论】:
-
一种解决方案是使用括号访问私有属性,即
obj['privateMethod']()但是,私有方法必须由公共方法调用,而这正是您应该测试/调用的。 -
我正在测试公共的,但我想确保私有函数中的简单 i/o 算法正常工作。感谢您的建议。
标签: typescript unit-testing jestjs private-members nestjs