java – 我需要指定一个已启用= false的已弃用测试?

weixin_38078903 2019-09-12 11:49:37
我正在弃用一些方法和包,要正确地弃用我在javaDoc(@deprecarted)和注释(@Deprecated)中指定,如下所示: */ @Deprecated @Test(groups = {"domini", "models"}) public class AdrecaTest extends ModelsAbstractTest { /** * <pre> * @deprecated * Nova ubicació: * <b>{@link cat.base.sca.domini.impl.AdrecaTest#comprovarEqualsIncorrecteNul()}</b> * </pre> * Comprova el mètode equals amb valors incorrectes o nul */ @Deprecated @Test **(enabled=false)** public void comprovarEqualsIncorrecteNul() { IAdreca a; a = new Adreca(); a.setTipusAdreca(PT_TIPUS_ADRECA); a.setIdEns(PT_ID_ENS); a.setIdEmissor(PT_ID_EMISSOR); a.setIdVial(PT_ID_VIAL); a.setIdSigles(PT_ID_SIGLES); 所以,我需要指定(enabled = false)?TY.
...全文
24 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38090696 2019-09-12
  • 打赏
  • 举报
回复
您可以使用@Ignore注释: @Deprecated @Test @Ignore public void comprovarEqualsIncorrecteNul() Junit会告诉你它跳过了一个测试: Tests run: 1, Failures: 0, Errors: 0, Skipped: 1 您还可以在标记中添加注释以供记录: @Ignore("Ignoring deprecated test.") 更一般地说,您可以使用@Rule有条件地跳过类中不推荐使用的测试方法: public class SkipDeprecated implements TestRule { @Override public Statement apply(final Statement stmnt, final Description d) { if (d.getAnnotation(Deprecated.class) == null) { return stmnt; } return new Statement() { @Override public void evaluate() throws Throwable { // Return an empty Statement object for those tests // that shouldn't run. } }; } } 如果没有@Deprecated注释,那么我们像以前一样继续.如果有一个我们返回一个空语句,它有效地跳过了测试. 在测试类中,您需要声明规则: @Rule public final SkipDeprecated sd = new SkipDeprecated(); 示例取自Mike Reedell并稍作修改. 正如迈克指出的那样,这并不完美,因为测试被标记为已通过.我做了一些谷歌搜索并遇到了this,它已经很老了,但总结了在规则中跳过测试的问题. 编辑 经过一些实验后,以下内容似乎与JUnit 4.11非常吻合 public class SkipDeprecated implements TestRule { @Override public Statement apply(final Statement stmnt, final Description d) { if (d.getAnnotation(Deprecated.class) == null) { return stmnt; } return new Statement() { @Override public void evaluate() throws Throwable { throw new AssumptionViolatedException("Test is deprecated."); } }; } } 这利用了JUnit的Assume API,并从用于@Deprecated测试的Statement中抛出AssumptionViolatedException.这导致JUnit认为测试在这些情况下不适用并将其报告为跳过 – 这比在无操作情况下报告为传递更好.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧