Powermock私有Singleton构造函数与Mockito参数

时间:2015-09-18 15:27:43

标签: java unit-testing constructor powermock

我有一个带有私有构造函数的单例类。私有构造函数接受其他类的对象。我需要从该单例类调用一个公共方法来测试该方法。我无法这样做。

这就是我所做的:

创建一个对象模拟,需要传递给测试类中的单例类私有构造函数:

@Mock
private SomeClass someObject;

然后我尝试模拟单例类SomeSingletonClass的私有构造函数:

   SomeSingletonClass mockSingleton = PowerMock.createMock(SomeSingletonClass);
    PowerMock.expectNew(SomeSingletonClass).andReturn(mockSingleton);

这是SomeSingletonClass构造函数没有参数的时候。但是我需要通过someObject SomeClass来模仿SomeSingletonClass。我该怎么做?

在该问题得到解决后,如何调用public XYZClass someMethod(int 1, String 2){ //some logic return (Object of XYZClass) } 的以下公共非静态方法:

someMethod

我对这一切都是全新的,所以任何帮助都将受到赞赏。谢谢。

修改

如果我尝试从mockSingleton对象中调用mocksingleton.someMethod,请执行以下操作:

SELECT DISTINCT a.content_id FROM flag_counts a LEFT JOIN flag_counts b ON (a.content_id = b.content_id AND b.flag_id = 1) WHERE b.content_id IS NULL; SELECT DISTINCT a.content_id FROM flag_counts a WHERE NOT EXISTS (SELECT 1 FROM flag_counts b WHERE a.content_id = b.content_id AND b.flag_id = 1)

然后我得到java.lang.NoClassDefFound错误。

0 个答案:

没有答案