使用scala,junit时,Powermock无法模拟静态方法

时间:2017-04-28 10:49:53

标签: scala junit powermock

我以前曾使用过java和junit的Powermock。我已经成功地模拟了静态方法,如下例所示:

@PrepareForTest({ TimeHelper.class, MainApp.class })
@RunWith(PowerMockRunner.class)
public class TestSuite {
    @Before
    public void setUp() throws IOException {
     PowerMockito.mockStatic(TimeHelper.class);
     Mockito.doReturn("2015-01-01 00:00:00").when(TimeHelper.getUnixTime());
    }
}

但是,翻译成scala时似乎不起作用。请注意,我们在下面调用的'getUnixTime'方法也在scala中实现。

@PrepareForTest(Array( classOf[TimeHelper], classOf[MainApp] ))
@RunWith(classOf[PowerMockRunner])
class TestSuite {
    @Before
    def setUp() {
     PowerMockito.mockStatic(classOf[TimeHelper]);
     Mockito.doReturn("2015-01-01 00:00:00").when(TimeHelper.getUnixTime());
    }
}

当运行在scala中实现的测试时,我似乎得到了测试返回的值,而不是模拟的值。有人能指出我在这里缺少的东西吗?

编辑:这是scala中getUnixTime函数的签名:

object TimeHelper{
    def getUnixTime(): String = {
      //logic
    }
}

0 个答案:

没有答案