【问题标题】:How to test if a class is abstract in Typescript using Mocha?如何使用 Mocha 在 Typescript 中测试一个类是否是抽象的?
【发布时间】:2017-04-27 15:39:52
【问题描述】:

我什至不知道这作为测试是否有意义,但我试图通过我能想到的唯一方法使用 Mocha 测试某个类 Component 在 Typescript 中是否是抽象的:

expect( new Component() ).to.throw( new Error( "" ) );

然而,这给了我一个有意义的编译错误,但会破坏测试:

Cannot create an instance of the abstract class 'Component'.

有什么方法可以正确测试吗?

谢谢

【问题讨论】:

  • 这不会破坏您的测试。这是一个编译错误,这意味着您甚至在运行测试之前就得到了它。 javascript 中没有抽象类之类的东西。
  • 我的意思是没有必要测试它。编译器已经为您检查过了,所以当您开始运行测试时,如果编译过程完成且没有错误,那么您可以假设这不是问题。测试有利于运行时问题,编译时问题由编译器解决。
  • 我以为你想确保你永远不会实例化抽象类。如果是这样,那么普通类就没有问题了。还是我误会了你?
  • 所以不需要测试,因为编译器会以编译错误的形式通知你。
  • 如果你在一个类中有一个抽象方法但是你没有把这个类抽象化,那么编译器仍然会报错。如果该类不是抽象的并且它没有抽象方法,那么它确实不是抽象的,并且您无法捕捉到它(没有编译错误,没有运行时错误并且无法测试它)

标签: typescript testing mocha.js


【解决方案1】:

您无法对此进行测试。抽象类被编译为常规类,而 Mocha 是一个运行时断言框架。

【讨论】:

    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2015-05-24
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多