【发布时间】: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