草庐IT

Junit-Tests

全部标签

java - 学习 JUnit 和正确软件工程的示例项目

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我很难在测试和代码之间建立联系。我可以在这里问很多关于目录结构和测试类命名以及JUnit3与4等问题,但我宁愿找到一个正确执行它的示例项目并通过阅读它来学习。我想要一些不太复杂的东西,这样我就可以很容易地理解它,而JUnit4是最好的(没有理由坚持使用3,因为我刚开始,对吧?)。我在Windows7上,我使用Eclipse,我计划/希望学习和使用Hudson。我喜欢A

java - 删除冗余的 JUnit 测试套件测试

在我们的JUnit测试套件中,我发现了一些没有提高覆盖率的测试,因此应该将其删除(它们需要时间,但并没有真正为测试套件增加值(value))。我想知道有哪些工具可以为我发现冗余测试? 最佳答案 我认为这是对代码覆盖率指标的滥用。仅仅因为一个测试不会增加指标,它不一定是多余的——它可以测试一个特定的执行路径,该路径由LOC组成,这些LOC被其他几个测试一起覆盖,但代表了其他测试都没有覆盖的行为。请记住:代码行为受状态的影响很大,但据我所知,没有任何测试覆盖率工具可以衡量状态空间的覆盖率。除非你的测试套件的运行时间是一个严重的问题,否则

java - 从 Eclipse 中的多个项目运行 JUnit 测试

可能我失去了理智,但今天早上当我升级到EclipseKepler时,我试图同时为多个Eclipse项目运行单元测试但失败了。我选择了多个项目,打开右键菜单,“运行方式...”选项不见了。“该死的开普勒!”我思考并启动了我的旧Juno安装,以说服自己行为已经改变。但是,它在那里也不起作用。我现在质疑我的理智是否真的有可能。ManyotherStackOverflow问题及其他sites表明这是一项艰巨的任务,如果不是不可能的话。但是,我非常确定我在最近做过这件事,这让我有点慌乱。所以...这在开普勒或朱诺号中是否可行?谁能推荐一个可能启用该功能的流行插件(我错误地认为这是默认行为)?背景

java - JUnit 测试失败 Hook 上的 Cucumber

我们使用Cucumber-JVM来编写我们的验收测试脚本,并使用JUnit来执行它们(通过JUnitCucumber运行程序)。由于这些测试涉及SeleniumWebDriver,我希望能够在我的测试失败时截取屏幕截图(我有相应的代码)。如果我简单地添加一个WebDriveronException钩子(Hook),当断言失败时将不会截取屏幕截图。我希望能够向Cucumberrunner添加JUnit执行监听器,但API似乎不支持此功能(Cucumber.class上没有addListener方法)。有人可以帮忙吗?感谢团队。 最佳答案

java - 使用 JUnit 测试图像文件

我正在寻找有关如何使用JUnit测试动态生成的图像是否是预期图像的方向。一些背景知识:我有代码生成缩略图作为java.awt.image.BufferedImage并将这些BufferedImage存储到java.io.File对象中。我编写了一个简单的单元测试来检查几个关键项目,以便确信生成的图像是正确的:@TestpublicvoidtestGenerateDefaultThumbnail(){Filefile=//someGeneratedFile.jpgassertNotNull(file);assertEquals(10211l,file.length());}基本上,我只是

java - 使用 jUnit 测试数据目录

我正在编写一些依赖于数据文件的jUnit测试。这些数据文件应该去哪里?我将如何(在jUnit测试中)获取该目录的位置?在Python中,我会使用类似于:datadir=os.dirname(__file__)+"/data/" 最佳答案 这在某种程度上取决于您使用数据文件的目的,但一般来说,只需创建一个包并确保它在您的类路径中。要从“数据”包加载属性文件,请添加“MyData.props”文件,您可以使用加载属性文件,如:this.getClass().getClassLoader().getResourceAsStream("/d

java - 我能否在启用所有日志记录和禁用所有日志记录的情况下自动执行一次 JUnit 测试用例?

我找到了解决方案,请参阅下面我自己的回答。有没有人有更优雅的?我想这样做是为了增加代码覆盖率并发现细微的错误。假设要测试以下类:publicclassFoo{privatefinalLoggerlogger=LoggerFactory.getLogger(Foo.class);publicvoidbar(){Stringparam=[..];if(logger.isInfoEnabled())logger.info("Amessagewithparameter{}",param);if(logger.isDebugEnabled()){//somecomplicatedpreparat

java - 有没有办法强制 JUnit 在任何未经检查的异常上失败,即使被吞噬了

我正在使用JUnit为没有单元测试的遗留代码编写一些更高级别的测试。大部分代码“吞噬”了各种未经检查的异常,如NullPointerExceptions(例如,仅打印堆栈跟踪并返回null)。因此,即使在较低级别代码的各个点存在级联灾难,单元测试也可以通过。有没有办法让测试在第一个未经检查的异常上失败,即使它们被吞没了?我能想到的唯一替代方法是编写一个自定义JUnit包装器来重定向System.err,然后分析输出中的异常。 最佳答案 如果您在IDE的调试器中执行测试,您可以将IDE配置为在抛出异常时中断。

java - JUnit:同时运行测试

我对Java编程和JUnit测试还很陌生。我使用junit-4.5附带的NetBeans6.9.1(但我已将junit-4.8.2添加到我的库中)。我有许多测试类,每个类中都有许多@Test方法。当我运行一个特定的测试类时,它一次运行一个@Test方法。我还使用创建了一个测试套件@RunWith(Suite.class)@Suite.SuiteClasses(value={TestClassA.class,TestClassB.class,TestClassC.class})publicclassNewTestSuite{}它将运行我的每个测试类,并在每次运行每个@Test方法时运行。

使用 Junit 5 运行测试时出现 java.lang.NoSuchMethodError

我创建了一个简单的测试来尝试Junit5:importorg.junit.jupiter.api.Test;publicclassMyTest{@TestpublicvoidtestJupiter(){System.out.println("test");}}这是我使用的依赖:org.junit.jupiterjunit-jupiter-api5.0.0test堆栈跟踪是下一个:Exceptioninthread"main"java.lang.NoSuchMethodError:org.junit.platform.commons.util.ReflectionUtils.getDef