【问题标题】:TypeScript - Use modules or classes with unit testing in mind?TypeScript - 使用带有单元测试的模块或类?
【发布时间】:2017-01-17 12:19:21
【问题描述】:

哪种内容架构策略最适合在 TypeScript 中进行单元测试?创建模块或类?

module: moduleX.method1(); // 导出的方法

class: var x = moduleX.method1(); // 公共方法

【问题讨论】:

  • 不应该根据测试来决定。模块和类只是不同。例如,您不能扩展模块(不像使用类那样容易)。有些事情最好用模块完成,有些事情用类更好。此外,没有矛盾,您可以在模块中拥有类。

标签: javascript typescript


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 2019-05-28
  • 2021-11-07
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多