我正在对执行一些序列化操作的方法进行单元测试。我打算模拟序列化逻辑。代码如下:
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
我创建了以下模拟对象:
@Mocked FileInputStream mockFIS;
@Mocked BufferedInputStream mockBIS;
@Mocked ObjectInputStream mockOIS;
我已经设置了一个NonStrictExpectations()
阻止我希望上面的构造函数调用。
关于如何实现这一目标有什么想法吗?
您可以为一组给定的交互指定一组完整的期望。从使用 JMockit 进行基于行为的测试:
对 doSomething() 方法的可能测试可以练习该案例
在任意数量的之后,SomeCheckedException 被抛出
成功的迭代。假设我们想要(无论出于何种原因)
记录一整套对交互之间的期望
这两个类,我们可以编写如下测试:
@Test
public void doSomethingHandlesSomeCheckedException() throws Exception
{
new Expectations() {
DependencyAbc abc;
{
new DependencyAbc(); // expect constructor
abc.intReturningMethod(); result = 3;
abc.stringReturningMethod();
returns("str1", "str2");
result = new SomeCheckedException();
}
};
new UnitUnderTest().doSomething();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)