Geeks, please accept the hero post of 2021 Microsoft x Intel hacking contest>>>
mockito
is a very common testing tool. In the process of using it, you may encounter the following problems:
Mockito cannot mock/spy because : - final class
The problem recurred
The Maven configuration that introduces this dependency to the project is as follows:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</version>
</dependency>
The test code is as follows:
package com.pkslow.basic;
import org.junit.Assert;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class MockitoTest {
public static final class FinalPumpkin {
public String getName() {
return "pkslow.com";
}
}
@Test
public void test() {
FinalPumpkin pumpkin = mock(FinalPumpkin.class);
when(pumpkin.getName()).thenReturn("www.pkslow.com");
Assert.assertEquals("www.pkslow.com", pumpkin.getName());
}
}
The error information is as follows:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.pkslow.basic.MockitoTest$FinalPumpkin
Mockito cannot mock/spy because :
- final class
This is because the lower version of mockito
cannot be mock
final
class
Solution:
Change the version of mockito
, and modify the Maven dependency as follows:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>3.3.3</version>
</dependency>
Rerun test, problem solved
Welcome to pumpkin www.pkslow.com Get more wonderful articles
welcome to WeChat official account < pumpkin speak slowly >, Will continue to update for you
read more and share more; Write more and organize more