本文介绍了jMockit:如何期望构造函数调用Mocked对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在对执行某些序列化操作的方法进行单元测试。我打算模拟序列化逻辑。代码如下:

  ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file))); 

我创建了以下模拟对象:

  @Mocked FileInputStream mockFIS; 

@Mocked BufferedInputStream mockBIS;

@Mocked ObjectInputStream mockOIS;

我设置了 NonStrictExpectations()块我希望上面的构造函数调用。



关于如何实现这一点的任何想法?

解决方案

您可以为给定的一组交互指定一组完整的期望。来自:

@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();
}

这篇关于jMockit:如何期望构造函数调用Mocked对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-25 01:53