今天在学习 JMockit 第一个案例的时候遇到了下面这个问题,百度很久没找到解决方案。
然后看官网这段话,就尝试改了下依赖的顺序,结果就pass了
但是不知道 javaagent 配置和依赖先后顺序有什么关系呢。
java.lang.ExceptionInInitializerError
at com.jmokit.JmokitTest.testSayHello(JmokitTest.java:17)
Caused by: java.lang.IllegalStateException: JMockit didn’t get initialized; please check the -javaagent JVM initialization parameter was used
代码如下:
package com.jmokit;
import com.Jmokit;
import mockit.Expectations;
import org.junit.Assert;
import org.junit.Test;
import java.util.Locale;
public class JmokitTest {
/**
* 测试场景在中国
*/
@Test
public void testSayHello() {
new Expectations(Locale.class){
{
Locale.getDefault();
result = Locale.CHINA;
}
};
Assert.assertTrue("你好中国".equals(new Jmokit().sayHello()));
}
}
package com;
import java.util.Locale;
public class Jmokit {
public String sayHello(){
Locale locale = Locale.getDefault();
if(locale.equals(Locale.CHINA)){
return "你好中国";
}
else {
return "hello word";
}
}
}