public class MyClassTest
{
@Mocked({"method1","method2"})
ClassA classA; //ClassA has only static method
@Mocked
ClassB classB;
@Test
public void test1()
{
new NonStrictExpectations() {{
MyClassA.method3(classB);
result = xxx;
}};
// testing code
....
// verification
...
}
@Test
public void test2(@Mocked ClassC classC)
{
...
}
}
(1)对于junit,实例变量是为每个测试新创建的(比如test1()、test2()),对吗?在每个测试运行之前,是否会创建一个新的模仿的ClassB实例?
(2)它嘲笑班级。它使ClassB中的所有方法对所有测试(在本例中是test1()和test2())都是模拟的,对吗?
回答您的问题:
>
(1)是;(2)是;(3)是的,并且其他方法不能在这个相同的测试类中被嘲笑。
是的,仅在具有mock参数的测试中。
上面还有第二个问题。当我在Expects块中定义mock类时(如上),似乎只调用了构造函数,而不是,因此没有正确初始化对象。我通过将它移到方法中并在那里实例化该类来解决这个问题。看起来是这样的: 因此,这似乎得到了要调用的正确构造函数,但似乎还在调用。有什么见解吗?
诚然,我对JMockit是新手,但出于某种原因,我在模仿System.getProperties()时遇到了麻烦。感谢以下帖子的帮助: https://stackoverflow.com/questions/25664270/how-can-i-partially-mock-the-system-class-with-jmockit-1-8?lq=1 我可以使用JMockit 1.12成功地模拟S
我有以下课程布局: 我正在为服务创建一个单元测试,但我想将ServiceHelper用作一个“活动”类,但要模拟ServiceHelper中的构造函数参数。有没有办法通过Mockito实现这一点?
所以我想做一些事情 但我得到了空异常
如何模拟返回已强制转换的模拟对象的方法。 试验方法。
出于学校目的,我正在创建一个使用股票API的应用程序。 我正在尝试为一种获取过去10年所有股票数据的方法编写一个测试。我不想实际获取所有这些数据,而是想抛出一个异常。 我想测试的方法: 股票时间系列(....)调用可以抛出阿尔法仓位异常。 我这样嘲弄了TimeSeries类: 在我的测试类中,我想模拟这个调用,并返回一个异常而不是实际数据。 无论我多么试图嘲笑这段代码,它永远不会抛出异常。它将始终