我正在使用JVm-Junit库编写《契约用户方代码》。但是在行:
MockProviderConfig config = MockProviderConfig.createDefault();
我收到错误消息“未为MockProviderConfig类型未定义createDefault()”

我该怎么做才能继续。

我的POM文件如下所示:
http://maven.apache.org/xsd/maven-4.0.0.xsd“>
    4.0.0
    消费者_0805
    消费者_080517
    0.0.1-快照
    战争

<dependencies>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-consumer-junit_2.11</artifactId>
        <version>3.2.9</version>
    </dependency>
</dependencies>




测试代码:

package DSLDirectConsumerTest;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import au.com.dius.pact.consumer.ConsumerPactBuilder;
import au.com.dius.pact.model.MockProviderConfig;
import au.com.dius.pact.model.MockProviderConfig$;
import au.com.dius.pact.model.PactConfig;
import au.com.dius.pact.model.PactFragment;
import au.com.dius.pact.model.RequestResponsePact;

public class DirectDSLConsumerPactTest {

    @Test
    public void testPact() {
        PactFragment pactFragment = ConsumerPactBuilder.consumer("Some Consumer").hasPactWith("Some Provider")
                .uponReceiving("a request to say Hello").path("/hello").method("POST").body("{\"name\": \"harry\"}")
                .willRespondWith().status(200).body("{\"hello\": \"harry\"}").toFragment();

        MockProviderConfig.createDefault();

    }

}

最佳答案

在版本3.3.8中,MockProviderConfig类是常规类,因此可以正常访问。

在3.3.0之前的版本中,它既是Scala Singleton对象又是Class,因此您需要按照从Java调用Scala类的方式适当地访问它。

由于createDefault()是在伴随单例对象上定义的,因此引用它的正确方法是:

MockProviderConfig$.MODULE$.createDefault();

10-07 12:10