簡體   English   中英

java.lang.IllegalStateException:沒有對靜態方法可用的模擬的最后一次調用

[英]java.lang.IllegalStateException: no last call on a mock available for static method

我是junit模擬的新手。 和即時通訊試圖嘲笑線以下。

IsomeInterface someinterface = someClass.getInstance();

其中someClass是實施IsomeInterface getInstance是一個靜態方法,該方法返回someClass對象。 下面是我嘗試過的嘲笑。

someClass someClassMock= PowerMock.createMock(someClass.class);
EasyMock.expect(someClass.getInstance()).andReturn(someClassMock);

例外:

java.lang.IllegalStateException: no last call on a mock available
    at org.easymock.EasyMock.getControlForLastCall(EasyMock.java:560)
    at org.easymock.EasyMock.expect(EasyMock.java:538)

嘗試

 PowerMock.mockStatic(ClassThatContainsStaticMethod.class)

模擬此類的所有方法。

通過powermock構造模擬並通過easymock驗證它們也可能存在問題,因此請嘗試:

   PowerMock.expectNew(NewInstanceClass.class).andReturn(mockObject)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM