Java JUnit等同于NUnit断言。不确定?

Java JUnit等同于NUnit断言。不确定?,java,junit,nunit,Java,Junit,Nunit,我是一名.Net开发人员,对Java和JUnit是全新的 我习惯于在某些情况下使用NUnitAssert.Inconclusive()方法,但在JUnit中我没有遇到同样的情况 我浏览了JUnit网站,也浏览了一下Google和stackoverflow。乍一看,JUnit中似乎没有与NUnitAssert.Inconclusive()方法等价的方法 真的是这样吗?我不知道 但是如果你想通过测试,你可以使用 或者有任何理由使用这种方法吗?我在NUnit中使用Inconclusive来断言何时不满

我是一名.Net开发人员,对Java和JUnit是全新的

我习惯于在某些情况下使用NUnit
Assert.Inconclusive()
方法,但在JUnit中我没有遇到同样的情况

我浏览了JUnit网站,也浏览了一下Google和stackoverflow。乍一看,JUnit中似乎没有与NUnit
Assert.Inconclusive()方法等价的方法

真的是这样吗?

我不知道

但是如果你想通过测试,你可以使用


或者有任何理由使用这种方法吗?

我在NUnit中使用Inconclusive来断言何时不满足测试的先决条件

例如,如果您的测试需要读取一个文件,然后使用该输入执行某些操作,可能该文件丢失,或者运行测试的用户没有读取该文件的权限-测试本身不应该失败,因为您的算法可能没有问题,只是运行测试的环境的方式有问题

另一个用例是,如果您想编写一个集成测试来处理数据库。如果数据库未运行或无法连接,那么您的测试实际上是不确定的,而不是失败-由于环境问题,它甚至从未启动运行

为此,我建议@Ignore不是您想要的,因为这会使您的测试根本无法运行。相反,您要使用的是各种方法。

您可以使用,也可以使用自己的方法

这旨在表明测试结果不可依赖,并将显示IntelliJ中忽略的测试

失败的假设并不意味着代码被破坏,而是测试没有提供有用的信息。默认的JUnit运行程序将忽略假设失败的测试。自定义跑步者的行为可能会有所不同


在Java中,我们使用了
Assert.fail()
,可能还带有一条类似“仍要实现”的消息来指示正在进行的工作。在一些情况下,断言不确定很方便,但这几乎不是必要的。我倾向于断言非决定性的,以表示被存根的测试,但尚未完全实现。还有其他用途,但这是我使用它的最常见方式。当我的测试未完成时,我习惯于忽略它,并通过一条短信解释它正在等待:酷,这可能是我在JUnit中完成此操作的方式。谢谢@克里斯托弗·杜福尔:我觉得这很有帮助,但真正的答案是在你的评论中:JUnit Ignore相当于NUnit unconcertive。我建议添加另一个答案或编辑您的答案。(我知道它很旧,但它应该是一个活生生的资源。)我想编辑这篇文章,但我不能,因为我需要更改10个字符,因为一些愚蠢的原因:它必须是:
抛出新的AssumptionViolatedException(“非决定性”)
public static void inconclusive() {
    throw new AssumptionViolatedException("Inconclusive");
}