草庐IT

cucumber-junit

全部标签

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 - 使用 Selenium 断言滚动条的存在(webdriver java cucumber)

我有一个需要测试的响应式网站。如果网站转到平板电脑的窗口大小,我希望测试检查是否有水平滚动条。根据设计,它们永远不会出现在平板电脑上。有没有人有一段伪代码来使用SeleniumWebdriverJavaCucumber断言水平滚动条的存在? 最佳答案 您可以使用javascriptExecutor测试它:垂直滚动条:booleanscrollBarPresent=((JavascriptExecutor)driver).executeScript("returndocument.documentElement.scrollHeigh

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

java - 在其他项目中重用 Cucumber-JVM 步骤定义

如何在其他项目中重用Cucumber-JVM步骤定义来测试一些典型的Web操作。重点是我创建了一些java项目,只是使用典型场景操作的步骤定义实现,例如:WhenIfollowthelink"*some_link*"ThenIshouldseefollowingcontent"*some_content*"onpage而且我想在其他项目中重用这些定义(包括在类路径中),只是为了编写自己的简单场景。但是当我运行场景(作为JUnit测试)时,Cucumber无法找到步骤定义。当我尝试扩展StepDefinitions类时,它给了我一个错误,我无法扩展StepDefinition类。那么,是