在 Java 单元测试中模拟用 Scala 编写的静态方法

Mocking a static method which is written in Scala in Java Unit test

我们正在项目中使用 Kafka 客户端。 我正在尝试通过 JMockit 从 Kafka 客户端模拟一个静态方法:

    new NonStrictExpectations() {
        {
            new MockUp<Consumer>()
            {                   
                @Mock
                ConsumerConnector createJavaConsumerConnector(
                        ConsumerConfig c){
                    return null;
                }
            };
        }
    };

看起来 JMockit 由于某种原因无法正常工作。我确定用于模拟静态方法的 JMockit 语法。这是错误:

java.lang.IllegalArgumentException: Matching real methods not found for the following mocks:
dispatcher.DispatcherTests#createJavaConsumerConnector(kafka.consumer.ConsumerConfig)

如果这不起作用,因为 Kafka 客户端代码在 Scala 中,我的程序如何工作?

有多个 ConsumerConnector classes - 我使用的那个来自错误的包。Scala 在这里没有造成任何问题。它在使用正确的 ConsumerConnector class.

后起作用