java.lang.Exception:未找到将JUNIT 4与SpringBoot匹配的测试

时间:2019-07-12 05:20:14

标签: maven spring-boot junit4

我正在使用junit 4为控制器创建测试。下面是TestController测试类。

@RunWith(SpringJUnit4ClassRunner.class)
@WebMvcTest(EmployeeController.class)

public class TestEmployeeController {

     @Autowired
     private MockMvc mvc;

     @MockBean
     private EmployeeService service;

     @BeforeClass
        public static void beforeTest() {
            System.out.println("Starting test engine");
        }

        @AfterClass
        public static void AfterTest() {
            System.out.println("Terminating test engine");
        }


     @Test
     public void testfindEmployeeById()  {
         System.out.println("here");
         Employee emp = new Employee();
         emp.setId(1);
         given(service.findById(emp.getId())).willReturn(emp);

         try {
            mvc.perform( MockMvcRequestBuilders
                      .get("/employee/findById/{id}", emp.getId())
                      .accept(MediaType.APPLICATION_JSON))
                      .andReturn();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
     }
}

当我尝试从Eclipse运行测试时出现问题,出现以下错误。我还用前缀测试重命名了该方法,但仍然无法正常工作。

我想这个问题可能是由于webmvc注释引起的,但不确定。 在Eclipse控制台中,记录器提供以下信息。

调试org.springframework.test.context.support.ActiveProfilesUtils-找不到注释类型[org.springframework.test.context.ActiveProfiles]和类[com.SpringHiber.testController]的“注释声明类” .TestEmployeeController]

我也尝试在控制器中注释@Profile和在testController方法中注释@ActiveProfiles。但这没有帮助。

有关我遇到的异常的详细信息如下。

java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testfindEmployeeById], {ExactMatcher:fDisplayName=testfindEmployeeById(com.SpringHiber.testController.TestEmployeeController)], {LeadingIdentifierMatcher:fClassName=com.SpringHiber.testController.TestEmployeeController,fLeadingIdentifier=testfindEmployeeById]] from org.junit.internal.requests.ClassRequest@2aceadd4
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:80)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:71)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

下面,我要发布其余的控制器类。

@RestController
@RequestMapping("/employee")

public class EmployeeController {
    @Autowired EmployeeService eService;

@GetMapping(path= {"/findById/{id}"},produces= {MediaType.APPLICATION_JSON_VALUE})
    public Employee findById(@PathVariable int id) {
        return eService.findById(id);   
    }
}

请让我知道上面代码中缺少什么?

0 个答案:

没有答案