通缉但未被调用.实际上,这个mock没有任何交互.Kinesis.工人AWS



我尝试了几种方法来解决这个异常。这是应用程序中存在的一个我从未使用过的测试。

import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;
@ExtendWith(MockitoExtension.class)
class TeamEventStreamWorkerTest {
@Mock
Worker worker;
@Mock
KinesisClientLibConfiguration kinesisClientLibConfiguration;
@Test
void onApplicationEvent() throws InterruptedException {
TeamEventStreamWorker teamEventStreamWorker = new TeamEventStreamWorker(null, null, null, kinesisClientLibConfiguration, null) {
Worker createDynamoDbStreamsWorker() {
return worker;
}
};
doNothing().when(worker).run();
teamEventStreamWorker.onApplicationEvent(null);
// Wait to make sure worker run is called by the async mechanism
Thread.sleep(1000);
verify(worker).run();
}
}

我知道问题出在worker.run((方法上。worker和kinesis对象是来自亚马逊的kinesis库的对象。

注意:最奇怪的是,当我在本地机器(IntelliJ(中进行测试时,工作非常完美,但当我进行推送,Jenkins作业开始尝试时,总是返回相同的错误。

您收到的异常消息告诉在测试中从未调用过worker.run()方法。你可以改变增加睡眠时间的设置。一旦worker.run()被调用至少一次,测试就会通过。

相关内容

最新更新