【发布时间】:2014-12-18 00:22:35
【问题描述】:
@Test
public void testGetOnlyNewPartitions() throws Exception {
setUp();
new Expectations(){
HiveUtil hiveUtil;
{
HiveUtil.getInstance(); returns(hiveUtil);
hiveUtil.getAllpartitions(oldTable); returns(oldPartitions);
hiveUtil.getAllpartitions(newTable); returns(newPartitions);
}
};
PartitionFilter partitionFilter = new PartitionFilter(oldTable, newTable, HiveUtil.getInstance());
}
我正在对 PartitionFilter 类进行单元测试,该类使用单例类 HiveUtil。
我的测试用例在运行时失败并出现错误“java.lang.IllegalStateException:用于记录期望的无效上下文”。关于为什么会发生这种情况的任何解释?
这是我的 pom.xml 的相关部分:
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
我试图将 jmockit 依赖项放在 pom 中的 junit 依赖项之前。那没用。
更多研究表明我没有在课程开始时使用@RunWith(JMockit.class) 注释。 但是,当我尝试使用它时,出现错误“无法将类解析为类型”。我做了所有相关的导入。
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.*;
import mockit.*;
import mockit.integration.junit4.*;
import junit.framework.TestCase;
我做错了什么?
【问题讨论】:
-
这个导入想要做什么?导入静态 mockit.Mockit.*;我在 JMockIt API 的 mockit 包中没有看到 Mockit 类
-
我的错。这是我正在尝试的建议。删除了。
-
哪一行给你的类不能被解析为一个类型?你在eclipse中看到maven库下的依赖了吗?
-
您编写测试用例的方式也有点奇怪。回报有什么用?他们的关键字result用于标记一个返回值,new NonStrictExpectations() { { d.toString();结果 = "模拟日期"; } };
-
我从这个链接阅读了它的使用后使用了返回:jmockit.googlecode.com/svn-history/r224/trunk/www/tutorial/… 并且类无法解析为在@RunWith(JMockit.class) 行中接收到的类型
标签: java junit jmockit expectations