2017-08-10 6 views
1

が初期化されていない、私は次の依存関係を持っています。その後、単体テストは私のアプリケーションで

@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; 
    } 
} 

と:

<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> 

私は私がテストに必要な以下のクラスのメソッドを持っていますテストクラスは

@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}) 

答えて

0

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

このJUnitのランナーは、JUnitのが必要ですバージョン> = 4.12。 spring-boot-starter-testへの依存はJUnitの必要なバージョンを移行させるので、JUnitへの依存を取り除くことができます。あなたのJUnit 4.11に対する依存関係は、SpringランナーのJUnitの期待と衝突しています。

+0

変更はありません – Salman

+0

junitへの依存関係を削除しましたか?4.11? – glytching

+0

ありがとうございました。だから、 'spring-boot-starter-test'に' junit'が暗黙的に含まれていますか?本当ですか? – Salman