Не могу изменить версию Mockito в POM проекта springboot

629 просмотра

1 ответ

Я заинтересован в

35. Пользовательское сообщение об ошибке подтверждения (начиная с 2.0.0)

Но почему-то я не могу использовать его в своем проекте Maven.

метод описания отсутствует

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>
Автор: Tomasz Mularczyk Источник Размещён: 08.11.2019 11:28

Ответы (1)


0 плюса

Решение

Последняя бета-версия Mockito - 2.0.106-бета. Но mockito-all застрял в версии 2.0.2-бета, где этот метод не существует.

Используйте mockito-core вместо mockito-all и используйте последнюю версию, где существует этот метод.

Автор: JB Nizet Размещён: 20.08.2016 03:46
Вопросы из категории :
32x32