不能用PowerMockito模拟Apache Commons的GenericObjectPool类



我有一个要求,我需要模拟创建Apache Commons Librabry的新GenericObjectPool对象。

模拟代码:

GenericObjectPool<Foo> objectPool = new GenericObjectPool<Foo>(Bar);

作为参数传递给 GenericPoolObject 构造函数的模拟栏对象工作正常。

用于模拟 GenericObjectPool 的代码:

Bar mockBar = PowerMockito.mock(Bar.class);
GenericObjectPool<Foo> mockPool = PowerMockito.mock(GenericObjectPool.class);
PowerMockito.whenNew(Bar.class).withNoArguments().thenReturn(mockBar);
PowerMockito.whenNew(GenericObjectPool.class).withArguments(mockBar).thenReturn(mockPool);
PowerMockito.when(mockPool.borrowObject()).thenReturn(dummyObject);

在@PrepareForTest中,包括了创建 GenericObjectPool 新对象的类。但是我没有得到模拟的对象,它总是返回新的 GenericObjectPool() 实例。

我通过将模拟的代码移动到单独的测试方法中来使其工作。早些时候,我在设置方法中使用@BeforeClass注释进行模拟。

相关内容

  • 没有找到相关文章

最新更新