测试java中预期的编译时错误



这个问题可以被认为只是这个c++问题的Java版本:单元测试编译时错误

我正在写一些实用程序类,它们与java中的泛型混淆,事情变得非常奇怪,以至于我发现自己希望知道如何为可能导致编译器错误的代码编写单元测试。我知道如何使单元测试只在引发预期异常时通过。不知道如何让它通过,只有当我得到预期的错误。这可能吗?如果是,如何?有典型的方法吗?有jUnit的方式吗?

一个例子是使用一种方法(比如说,执行强制转换的方法),这种方法应该会导致错误。我想要一个只有当调用该方法的代码产生错误时才能通过的测试。我会把它和其他不应该导致错误的测试一起运行。

作为另一个例子,阅读Generic And Parameterized Types,并注意注释通常会说"failed with ClassClassException"should fail,but success"之类的话。这些似乎是可以自动化的测试。

这不是为了测试编译器。这是为了测试我写的通用代码是否做了它应该做的事情

我的直觉告诉我,这超出了编译器或库的能力,进入了IDE魔术、奇怪的项目配置或静态代码分析的领域。我真的不知道。我只想确保代码会导致它应该出现的错误,就像我没有导致它不该出现的错误一样。我使用eclipse、ant和jUnit,所以详细说明如何使用它们来完成这项工作的答案将是完美的。

您可以使用其他软件运行一些命令并检查其结果。这样就可以很容易地检查编译时的错误。可以用某种语言将其作为脚本编写,也可以用java将其作为单独的项目编写,但它必须与您的项目不同。

您要运行的命令应该是javac、ant或任何其他命令,具体取决于您的IDE。

相关内容

  • 没有找到相关文章

最新更新