2016-08-20 71 views
0

的POM更改版本的Mockito我感興趣與不能在springboot項目

35. Custom verification failure message (Since 2.0.0)

但不知何故,我不能在我的Maven項目中使用它。

no description method

POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>test</groupId> 
    <artifactId>Mockito</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <version>1.4.0.RELEASE</version> 
      <exclusions> 
       <!-- potrzebujemy nowszej wersji mockito --> 
       <exclusion> 
        <groupId>org.mockito</groupId> 
        <artifactId>mockito-core</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>2.0.2-beta</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

    </dependencies> 
</project> 

不可編譯的代碼:

@Test 
public void testCustomVerificationFailureMessage(){ 
    List mock = mock(List.class); 

    BDDMockito.given(mock.get(0)).willReturn("string"); 

    mock.get(0); 

    verify(mock, times(1).description("metoda powinna wykonać się tylko jeden raz")).get(0); 
} 

我缺少的東西?似乎舊版本仍然踢

解決方案:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>test</groupId> 
    <artifactId>Mockito</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

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

     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-core</artifactId> 
      <version>2.0.106-beta</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

    </dependencies> 
</project> 
+0

當你輸入代碼並編譯時會發生什麼?你可以發佈一個最小的,但完整的例子,作爲代碼,而不是一張圖片? –

+0

@JBNizet不可編譯的源代碼。 – Tomasz

+0

發佈一個**完整**最小示例,作爲代碼。 –

回答

0

的的Mockito最新beta版2.0.106-β。但是mockito全都停留在版本2.0.2-beta,而這個方法不存在。

使用mockito-core而不是mockito-all,並使用存在此方法的最新版本。

+0

這就是我剛纔做的事情;) – Tomasz