草庐IT

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

java - 如何将 JUnit Parameterized runner 与 varargs 构造函数一起使用?

我写了一个模型示例来说明这一点,但没有暴露任何secret信息。这是一个什么都不做的“虚拟”示例,但问题出现在测试初始化​​程序中。@RunWith(Parameterized.class)publicclassExampleParamTest{intordinal;Liststrings;publicExampleParamTest(intordinal,String...strings){this.ordinal=ordinal;if(strings.length==0){this.strings=null;}else{this.strings=Arrays.asList(stri

java - JUnit 测试内存不足——如何增加堆大小?

我正在运行Junit测试,该测试会抛出异常OutOfMemory。测试在内部NetBeans6.9.X中启动。在分析它时我已经意识到HeapmaxSize是64M。我想增加这个但我找不到如何执行此操作。我已经尝试过右键单击项目->属性->运行在VM选项下我设置了-Xms300M但这没有用。有什么提示吗?提前致谢。 最佳答案 来自http://wiki.gephi.org/index.php/NetBeans_Tips#How_to_increase_Heap_Size_for_JUnit_test编辑您的project.proper

java - Spring 的 @Retryable 在运行 JUnit 测试时不起作用

我有这个测试:@RunWith(MockitoJUnitRunner.class)publicclassmyServiceTest{@InjectMocksmyServicesubject;privatemyServicespy;@Beforepublicvoidbefore(){spy=spy(subject);}@Testpublicvoidtesting(){when(spy.print2()).thenThrow(newRuntimeException()).thenThrow(newRuntimeException()).thenReturn("completed");spy

java - 使用 JUnit 4 测试自定义异常的错误代码

我想测试异常的返回码。这是我的生产代码:classA{try{something...}catch(Exceptione){thrownewMyExceptionClass(INTERNAL_ERROR_CODE,e);}}以及相应的异常:classMyExceptionClassextends...{privateerrorCode;publicMyExceptionClass(interrorCode){this.errorCode=errorCode;}publicgetErrorCode(){returnthis.errorCode;}}我的单元测试:publicclassAU

java - 在任何 junit 测试运行之前执行一些代码

我有很多单元测试文件,它们基本上执行相同的@BeforeClass。他们启动jetty网络服务器,添加一些系统属性。所以我想知道,是否可以在运行单元测试之前只执行一次? 最佳答案 您可以使用@RunWith注释:@RunWith(JettyRunner.class)publicclassMyAwesomeTest{@Test//...}并实现一个新的RunnerpublicclassJettyRunnerextendsBlockJUnit4ClassRunner{privatestaticbooleaninitialized=fal