我有一个带有私有构造函数的单例类。私有构造函数接受其他类的对象。我需要从该单例类调用一个公共方法来测试该方法。我无法这样做。
这就是我所做的:
创建一个对象模拟,需要传递给测试类中的单例类私有构造函数:
@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错误。