嘲笑一个拥有私有构造函数的类?

问题描述:

我需要模拟一个java类,它有一个私有的构造函数,只有一个静态的创建方法。嘲笑一个拥有私有构造函数的类?

什么将是这一种情况的典型解决方案。

带或不带一个框架。

您可以使用PowerMock嘲笑静态方法https://code.google.com/p/powermock/wiki/MockitoUsage,所以你会嘲笑静态创建方法并返回任何你想要的。如果静态方法返回一个接口而不是一个类,那么更容易,因此您可以返回自己的模拟实现。

+0

我读到这里和那里,什么出来作为一个解决方案是创建一流周围的包装。它背后的理性,不要模仿你不拥有的类型。的确,这个类型来自一个lib。我不拥有它。但是,我不喜欢包装东西的想法。我认为这可能是昂贵的。但至少我会嘲笑我的类型,并验证呼叫。 – MaatDeamon

+0

是的,如果你不拥有它,那是一个解决方案。包装它可以保护您的课堂消费者免于处理第三方库的实施细节。这是一个平衡点 - 如果你试图包装一切,你会发疯。 –

+0

明白了。谢谢 !!!在目前情况下,这只是一个痛苦,所以包装更好。但是,只要我可以避免包装,我会去包装。 – MaatDeamon