TypeScript - 使用带有单元测试的模块或类?
Posted
技术标签:
【中文标题】TypeScript - 使用带有单元测试的模块或类?【英文标题】:TypeScript - Use modules or classes with unit testing in mind? 【发布时间】:2017-01-17 12:19:21 【问题描述】:哪种内容架构策略最适合在 TypeScript 中进行单元测试?创建模块或类?
module: moduleX.method1();
// 导出的方法
class: var x = moduleX.method1();
// 公共方法
【问题讨论】:
不应该根据测试来决定。模块和类只是不同。例如,您不能扩展模块(不像使用类那样容易)。有些事情最好用模块完成,有些事情用类更好。此外,没有矛盾,您可以在模块中拥有类。 【参考方案1】:最好在 TypeScript 中考虑单元测试
如果你有一个不依赖于类中本地状态的函数......那么它应该只是一个函数。可以foo()
时不需要new SomeClass().foo()
在这里,您可以使用命名空间将不同的功能很好地整合到一个对象中:https://basarat.gitbooks.io/typescript/content/docs/project/namespaces.html,您会得到类似Utils.foo()
的东西
请注意,我希望您只创建一个 javascript 模块 而不是命名空间:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
最重要的是玩得开心 ?只要你对下一个开发者保持一致和体贴(离开 cmets / types)你就可以专注于业务逻辑。
【讨论】:
有趣,谢谢。就我而言,我正在开发一个绘图工具应用程序。我将所有东西都包装在一个带有变量的命名空间中,导出一个函数,并在调用时设置画布并为控件添加事件侦听器。然后调用其他函数并使用和更新共享变量。我想知道是否应该将其切换为一个类并改为使用属性而不是变量。I'm wondering if I should switch this to a class instead and change to use properties instead of variables
。我会:basarat.gitbooks.io/typescript/content/docs/tips/…以上是关于TypeScript - 使用带有单元测试的模块或类?的主要内容,如果未能解决你的问题,请参考以下文章
使用 typescript/mocha 进行单元测试时找不到模块