无法释放模拟- Mockito

qxsslcnc  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(643)

我正在尝试从Mockito版本1.0.19升级到4.0.0并使用Junit 5,因为我无法在旧版本的Mockito中模拟静态。我收到“无法发布模拟”错误。
请让我知道,什么都需要注意,而迁移.

public class RefreshTableSchedulerTest {

    @Mock
    ConfigRepository configRepository;

    @InjectMocks
    RandomScheduler randomScheduler;

    @BeforeEach
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        setReflectionUtils(randomScheduler);

    }

@Test
    public void testRefreshTableWithOutDelay() {
    // our trestcases

    }

随机调度程序

@Configuration
@EnableScheduling
public class RandomScheduler {

@Scheduled(fixedDelayString = "${schedule.refresh.table.job.in.ms:1800000}")
    public void execute() {
    //fetch data from table A
    //inserts data to Table B using timestamps got from Table A
    //updates timestamp of Table A
    }
sy5wg1nm

sy5wg1nm1#

如果您尝试使用mockito模拟静态类,则首先需要以下依赖项。如果您尝试在没有此依赖项的情况下模拟静态类,则会引发该错误

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-inline</artifactId>
    <scope>test</scope>
</dependency>

然后使用

MockedStatic<YourStaticClass> yourStaticClass = mockStatic(YourStaticClass.class)

还要确保您在pom中使用的依赖项是否正确

vc6uscn9

vc6uscn92#

Failed to Release mocks可能会在您的依赖项不一致时发生。由于您使用的是Spring Boot,请确保不要迁移主要的Mockito版本,而是使用spring-boot-starter-test和正确版本的Spring Boot父项,这将带来一组一致的依赖项,包括Mockito。

相关问题