【问题标题】:Cannot mock GenericObjectPool class of Apache Commons with PowerMockito无法使用 PowerMockito 模拟 Apache Commons 的 GenericObjectPool 类
【发布时间】: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


    【解决方案1】:

    我通过将 Mocking 的代码移动到单独的测试方法中来实现它。之前我在 setUp 方法中使用 @BeforeClass 注释进行模拟。

    【讨论】:

      猜你喜欢
      • 2014-02-07
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      相关资源
      最近更新 更多