Фу, кажется, что-то идет не так на вашей машине.На основе вашего теста я создал следующий автономный класс теста:
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.List;
import static org.hamcrest.CoreMatchers.hasItems;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
public class ArgumentCaptorTest {
private static class Order {
}
public static class OrderDAO {
public Order read(Integer any) {
return null;
}
}
@Mock
OrderDAO dao;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void captor_A() {
Order order = new Order();
ArgumentCaptor<Integer> intCaptor = ArgumentCaptor.forClass(Integer.class);
when(dao.read(any(Integer.class))).thenReturn(order);
dao.read(123);
dao.read(456);
verify(dao, times(2)).read(intCaptor.capture());
assertThat(intCaptor.getAllValues(), hasItems(456));
}
}
Используемые зависимости (pom.xml):
<?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>testing</groupId>
<artifactId>testing</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.18.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Когда я запускаю тест, он отлично работаети дает мне зеленую полосу.Для того, что я вижу, вы делаете это правильно.Может быть, у вас есть конфликт версий между JUnit, Hamcrest и Mockito, который приводит к вашей ошибке?Я использовал следующие версии JAR:
- junit: junit: 4.12
- org.hamcrest: core-hamcrest: 1.3
- org.mockito: mockito-core: 2.18.3
Я также оставил импорт, чтобы вы могли сравнить его с вашим (на случай, если «неправильный» импорт приведет к ошибке).Поскольку вы статически импортируете Matchers.*
из пакета Hamcrest, я совершенно уверен, что эта и / или используемые вами версии библиотеки вызывают вашу проблему.