【发布时间】:2016-06-09 10:19:58
【问题描述】:
我有一个要求,我需要模拟创建 Apache Commons 库的新 GenericObjectPool 对象。
要模拟的代码:
GenericObjectPool<Foo> objectPool = new GenericObjectPool<Foo>(Bar);
作为参数传递给 GenericPoolObject 的构造函数的 Mocking Bar 对象可以正常工作。
用于模拟 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() 实例。
【问题讨论】:
标签: java unit-testing junit mockito powermockito