单元测试未初始化

问题描述:

在我的应用程序,我有以下的依存关系:单元测试未初始化

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <version>1.5.2.RELEASE</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 

我在下面的类中的方法,我需要测试:

@Service 
public class DataExtractorService { 

    @Autowired 
    LinksWriterService writer; 

    Kinkester kinkester; 

    public DataExtractorService(){ 
     kinkester=new Kinkester(); 
    } 

    public Kinkester extractor(String rowData){ 
      String pattern = "(\\d+)(\\D*)"; 

      Pattern r = Pattern.compile(pattern); 

      Matcher m = r.matcher(rowData); 
      if (m.find()) { 
      System.out.println("Found value: " + m.group(0)); 
      System.out.println("Found value: " + m.group(1)); 
      }else 
       System.out.println("NO MATCH"); 
      kinkester.setAge(Integer.parseInt(m.group(0))); 
      kinkester.setRole(m.group(1)); 

     return kinkester; 
    } 
} 

,然后测试等级是:

@RunWith(SpringRunner.class) 
@SpringBootTest(classes = SeleniumApplication.class) 
@WebAppConfiguration 

public class DataExtractorTest { 


    @Autowired 
    DataExtractorService dataExtractorService; 

    @Test 
    public void extractor(){ 
     Kinkester kinkester = dataExtractorService.extractor("45M"); 
     System.out.println(kinkester.getAge()); 
     //assertEquals(kinkester.getAge(),45); 

    }  
} 

但不幸的是,测试不运行。它

Initialization Error (Runner: Junit 4) 

我曾尝试下面的代码抱怨,但仍然没有答案了:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {SeleniumApplication.class}) 

你的测试类应该被注释:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes = SeleniumApplication.class) 

这JUnit运行,需要JUnit版本> = 4.12。您对spring-boot-starter-test依存度将在传递性带来的JUnit所需的版本,所以你可以删除JUnit的依赖。 JUnit的4.11你explcit依赖性与春季亚军的JUnit的预期冲突。

+0

它不会做任何改变 – Salman

+0

您已删除您的JUnit的依赖性:4.11? – glytching

+0

谢谢。那么'spring-boot-starter-test'包含'junit'?真正? – Salman