0

我想模拟单例对象?在scalamock-3中似乎是不可能的

我发现 easyMock 和 powerMock 可以模拟单例对象(来自https://github.com/fabura/scala-MockStaticObjects

但是,我不能得到这个工作?有任何想法吗?

4

1 回答 1

0

如果单例对象有一个静态的 .getInstance 方法,它是相当容易模拟的。

您需要在测试类的顶部执行以下操作

@RunWith(PowerMockRunner.class) @PrepareForTest(Singleton.class)

然后嘲笑单身人士

mockStatic(Singleton.class); Singleton mockSingleton = mock(Singleton.class); when(Singleton.getInstance()).thenReturn(mockSingleton);

您希望返回的单例具有的任何值我相信您必须在“何时”示例之前设置:when(mockSingleton.toString()).thenReturn("I'm a mock");

于 2016-02-04T18:41:58.513 回答