簡體   English   中英

在靜態方法中模擬UrlEncoder

[英]mocking UrlEncoder in a static method

我在模擬UrlEncode.encode方法時遇到了麻煩,該方法在靜態方法中。

MyEncodeClass.java有這個方法

public static myEncode(String s) {
  UrlEncoder.encode(s, "utf-8");
}

我想在調用UrlEncode.encode方法時強制拋出異常。

@Test(expect = UnsupportedEncodingException.class)
public void myTest() {
    PowerMockito.mockStatic(URLEncoder.class);        
    when(URLEncoder.encode("aa", "utf-8")).thenThrow(UnsupportedEncodingException.class);    
    MyEncodeClass.myEncode("aa");
}

但我總是得到以下例外

Caused by: java.lang.NoSuchMethodError: org.mockito.mock.MockCreationSettings.isUsingConstructor()Z

這是因為PowerMockito和Mockito工件之間的版本沖突。 新版本中刪除了“MockCreationSettings.isUsingConstructor”方法,因此您需要確保使用的是正確的版本。 例如,使用PowerMockito版本1.6.2與Mockito版本1.10.19(此版本有丟失的方法)

暫無
暫無

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

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