This commit is contained in:
Stéphane Nicoll 2024-08-07 15:28:52 +02:00
parent 7052af97a6
commit 313b063aef
4 changed files with 20 additions and 16 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -142,6 +142,7 @@ public class MockitoTestExecutionListener extends AbstractTestExecutionListener
private static final class MockitoAnnotationCollector implements FieldCallback {
private static final String MOCKITO_BEAN_PACKAGE = MockitoBean.class.getPackageName();
private static final String ORG_MOCKITO_PACKAGE = "org.mockito";
private final Set<Annotation> annotations = new LinkedHashSet<>();

View File

@ -33,11 +33,12 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
*/
@SpringJUnitConfig(MockitoBeanForByNameLookupIntegrationTests.Config.class)
@MockitoBeanSettings(Strictness.LENIENT)
public class MockitoBeanSettingsLenientIntegrationTests {
class MockitoBeanSettingsLenientIntegrationTests {
@Test
public void unusedStubbingNotReported() {
var list = Mockito.mock(List.class);
@SuppressWarnings("rawtypes")
void unusedStubbingNotReported() {
List list = Mockito.mock(List.class);
Mockito.when(list.get(Mockito.anyInt())).thenReturn(new Object());
}

View File

@ -47,18 +47,11 @@ import static org.junit.platform.testkit.engine.TestExecutionResultConditions.me
* @author Simon Baslé
* @since 6.2
*/
public final class MockitoBeanSettingsStrictIntegrationTests {
private static Stream<Named<Class<?>>> strictCases() {
return Stream.of(
Named.of("explicit strictness", ExplicitStrictness.class),
Named.of("implicit strictness with @MockitoBean on field", ImplicitStrictnessWithMockitoBean.class)
);
}
class MockitoBeanSettingsStrictIntegrationTests {
@ParameterizedTest
@MethodSource("strictCases")
public void unusedStubbingIsReported(Class<?> forCase) {
void unusedStubbingIsReported(Class<?> forCase) {
Events events = EngineTestKit.engine("junit-jupiter")
.selectors(selectClass(forCase))
.execute()
@ -72,10 +65,19 @@ public final class MockitoBeanSettingsStrictIntegrationTests {
message(msg -> msg.contains("Unnecessary stubbings detected.")))));
}
private static Stream<Named<Class<?>>> strictCases() {
return Stream.of(
Named.of("explicit strictness", ExplicitStrictness.class),
Named.of("implicit strictness with @MockitoBean on field", ImplicitStrictnessWithMockitoBean.class)
);
}
abstract static class BaseCase {
@Test
@SuppressWarnings("rawtypes")
void unnecessaryStub() {
var list = Mockito.mock(List.class);
List list = Mockito.mock(List.class);
Mockito.when(list.get(Mockito.anyInt())).thenReturn(new Object());
}
}

View File

@ -60,6 +60,7 @@ class MockitoSpyBeanForBeanFactoryIntegrationTests {
assertThat(this.testFactoryBean.getObject()).isNotSameAs(this.testBean);
}
@Configuration(proxyBeanMethods = false)
static class Config {
@ -67,10 +68,10 @@ class MockitoSpyBeanForBeanFactoryIntegrationTests {
TestFactoryBean testFactoryBean() {
return new TestFactoryBean();
}
}
static class TestBeanImpl implements TestBean {
@Override
public String hello() {
return "hi";
@ -88,7 +89,6 @@ class MockitoSpyBeanForBeanFactoryIntegrationTests {
public Class<?> getObjectType() {
return TestBean.class;
}
}
}