天道酬勤,学无止境

junit

How to test that a exception is thrown and caught in junit

问题 我需要测试以下代码: try{ while((testBean = csvReader.read(TestBean.class,headers,getCellProcessors()))!=null){ System.out.println("no excpetion"); i=5; } }catch(SuperCsvException csvExc){ System.out.println("superCSV excpetion"); i=0; }catch(Exception ex){ System.out.println("excpetion"); i=0; } 如何测试是否抛出和捕获SuperCsvException 。 回答1 @Test(expected=<YourExpectedException>.class) public void testExceptionThrown() { // call the method that throws exception } 回答2 try { doSomething(); fail("No exception thrown"); } catch (MyException e) { // expected } 回答3 期待异常的“新”JUnit 方式是规则方式: public class

2022-07-11 09:39:00    分类:技术分享    java   junit

Activity never becomes requested state in UI Testing

When implement code to test UI in android using kotlin. this is my code I thinks it 's simple code to test but android studio prevent me due to some problem > I searched a lot for this but no result . I tried a lot of solution but no result also . Thanks . I get this error and activity which I test doesn't start . java.lang.AssertionError: Activity never becomes requested state "[STARTED, RESUMED, DESTROYED, CREATED]" (last lifecycle transition = "PRE_ON_CREATE") at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:301) at androidx.test.core.app

2022-06-04 15:15:12    分类:问答    java   android   kotlin   junit   android-espresso

Mock final class in java using mockito library [duplicate]

问题 这个问题在这里已经有了答案: 如何用 mockito 模拟最后一堂课28 个答案 4年前关闭。 我有一个类是最终的,它有一个我想要执行某些操作的方法。 因此,我想创建最终类的对象。 但我无法创建它,以下是我的课程。 public final class A { private String name; A(String name){ this.name = name; } public String getName(){ return name; } } 在我的 junit 测试用例中,我想创建该类的对象,如下所示 Class TestA{ @Test public void testA(){ A a = mock(A.class); when(a.getName()).then("ABC"); //on this line i am getting exception } } 我也尝试过使用 new 关键字,但没有用。 那么无论如何要创建最终类的模拟对象吗? 在我面临异常之后, org.mockito.exceptions.base.MockitoException: Cannot mock/spy class A Mockito cannot mock/spy following: - final classes - anonymous classes -

2022-05-17 02:23:19    分类:技术分享    java   junit   mockito

Unit testing code in catch block of a Spring Controller

问题 我有具有以下结构的控制器: @RequestMapping(value = "${foo.controller.requestMappingUrl.login}", method = RequestMethod.POST) public ResponseMessage<String> loginUser( @RequestParam("username") String username, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { try { return fooService.login(username); // can mock test } catch (UserNotFoundException e) { //CANNOT MOCK TEST THIS BLOCK String errorMsg = LoggerUtil.printStackTrace(e); LOG.error("[RequestId: {}] UserNotFoundException: {}, Stack: {}", requestId, e.getMessage(), errorMsg); httpServletResponse.setStatus(HttpStatus

2022-05-16 13:18:05    分类:技术分享    java   spring   unit-testing   junit   mockito

JUnit5 - How to get test result in AfterTestExecutionCallback

问题 我写 JUnit5 扩展。 但我找不到如何获得测试结果的方法。 扩展看起来像这样: import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.TestExtensionContext; public class TestResultExtension implements AfterTestExecutionCallback { @Override public void afterTestExecution(TestExtensionContext context) throws Exception { //How to get test result? SUCCESS/FAILED } } 任何提示如何获得测试结果? 回答1 public class RunnerExtension implements AfterTestExecutionCallback { @Override public void afterTestExecution(ExtensionContext context) throws Exception { Boolean testResult = context

2022-05-16 08:13:05    分类:技术分享    java   junit   junit5   junit5-extension-model

How to mock static method chain call using easymock-powermock?

问题 我想使用easymock-powermock模拟下面的方法链, OtherClass oc = SampleClass.getInstance().getSampleMethod(new StringReader("ABC"); getInstance() 是一个单例方法。 getSampleMethod() 是一个公共方法。 当我尝试使用 expect/andReturn 时得到空值。 回答1 我不确定您是否立即对整个方法链设置期望,但这不是它的工作方式。 您必须分别为每个方法调用设置期望。 在您的情况下,由于第一个方法调用是静态调用,您应该使用 powermock 并设置期望并为其返回模拟实例。 然后你应该添加对第二个方法调用的期望。 我在下面给出了示例代码请检查它是否适用于您的情况。 @RunWith(PowerMockRunner.class) @PrepareForTest({SampleClass.class}) public class SimpleClassTest{ @Test public void test(){ PowerMock.mockStatic(SampleClass.class); SampleClass sampleClassInstance = EasyMock.createMock(SampleClass); EasyMock

2022-05-15 19:38:09    分类:技术分享    junit   powermock   easymock

How to mock Environment Interface

问题 @Mock private Class object; @InjectMocks Class2 object2; Mockito.when(object.getFilePath()).thenReturn("Random String"); 回答1 正如我在评论中所说,您不需要 Mockito,您可以使用MockEnvironment类来模拟 Spring 中的Environment 。 您可以通过以下方式设置值: MockEnvironment environment = new MockEnvironment(); environment.setProperty("yourKeyOne", "yourValue1"); environment.setProperty("yourKeyTwo", "yourValue2"); 并且根据您的需要,您可以使用此环境变量。 例如,这里有一个AnnotationConfigWebApplicationContext实例: AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.setEnvironment(environment); 回答2 @RunWith

2022-05-15 14:57:13    分类:技术分享    java   testing   junit   mockito

Unable to inject dependency in Junit test

问题 在我的一个 JUnit 测试类中注入依赖项时遇到了一些麻烦。 我相信 TestApplication 不是包扫描或没有被加载。 下面的代码: package com.mitto.repositories; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; import org.springframework.test.context.transaction

2022-05-15 06:43:03    分类:技术分享    spring   junit   dependency-injection

Configure Manuel container IntelliJ Arquillian Wildfly

问题 我正在使用 intelliJ 运行 junit arquillian 测试。 问题是我的测试适用于 maven 命令,但不适用于 arquillian mvn package -P=arq-wildlfy-managed 这是我的pom: <dependencyManagement> <dependencies> <!-- Arquillian BOM (Bill Of Materials). --> <dependency> <groupId>org.jboss.arquillian</groupId> <artifactId>arquillian-bom</artifactId> <version>${version.org.jboss.arquillian}</version> <scope>import</scope> <type>pom</type> </dependency> <!-- JUnit regression testing framework. --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${version.junit}</version> </dependency> </dependencies> <

2022-05-14 11:59:04    分类:技术分享    java   maven   intellij-idea   junit   jboss-arquillian

How keep spring context loaded between test runs in Intellij Idea?

问题 回答1 很久以前没有答案,这很奇怪,知道这一点非常重要,因为它可以节省大量资源和时间。 如果你有一堂带注释的课 @SpringBootTest public class IntegrationTest 并且您将其扩展到所有测试类上下文将仅加载一次 public class ServiceIntegationTest extends IntegrationTest 此类中的所有测试都将使用相同的上下文。 此外,扩展此类的所有类都将重用相同的上下文。

2022-05-14 09:30:09    分类:技术分享    java   spring   intellij-idea   junit