在没有导出的情况下测试打字稿模块
Posted
技术标签:
【中文标题】在没有导出的情况下测试打字稿模块【英文标题】:Testing typescript modules without exports 【发布时间】:2017-12-02 00:47:30 【问题描述】:我正在处理遗留环境,并且我有包含模块或/和类的 Typescript 文件
class SomeClass
...
module AndAModule
export namespace NestedNamespace
...
请注意***模块/类中缺少“export”关键字。
我想使用 Jest 库测试“NestedNamespace”中的函数。但是,当我在测试文件中导入 Typescript 文件时:
var service = require("/path/to/file/SomeService.ts")
我无权访问 SomeService.ts 文件中定义的类或模块。如果在模块和类之前添加“export”关键字,我可以通过从 require 返回的对象访问它们,但这会破坏整个环境和其他文件,因为在此之后,模块和类不存在于生成的 outFile通过打字稿。
如何在不添加任何导出语句的情况下从文件中导入所需的模块?
【问题讨论】:
我面临同样的问题(几乎正好是 2 年后)。您找到解决方法了吗? 不幸的是我不再从事这个项目,我想我还没有找到解决方案:P 【参考方案1】:如果您有一个未导出的函数,则导出的其他函数正在调用该未导出的函数。测试导出的方法,您将间接测试未导出的方法。
【讨论】:
以上是关于在没有导出的情况下测试打字稿模块的主要内容,如果未能解决你的问题,请参考以下文章
打字稿错误:模块'“.../node_modules/rxjs/Rx”'没有导出的成员'SubscriptionLike' [重复]