我正在使用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();