[英]Mock a Static Method which calls a void method with arguments passed into it
我有getNameLength方法,我需要使用PowerMockito模擬setName方法。 我應該如何在setName emthod中模擬輸入參數(sb,input),以便我可以使用模擬數據運行我的getNameLength測試用例?
public class ExampleClass{
public static int getNameLength(StringBuilder sb ){
setName(sb, "Test");
return sb.toString().length();
}
public static void setName(StringBuilder sb, String input){
sb.append(input);
}
}
為什么你需要那個set方法呢?
public static int getNameLength(StringBuilder sb ){
sb.append(sb, "Test");
return sb.toString().length();
}
做你的代碼所做的一切。
在你的實際問題上:你不需要模擬這樣的代碼。 您可以控制所有“輸入”(進入方法的StringBuilder); 你會得到一個價值。
所以你可以寫下一個簡單的斷言
assertThat(getNameLength(new StringBuilder()), is(4));
例如(它檢查將“Test”添加到空構建器會產生一個4字符串)。
最后:你的問題似乎也是:你不了解一些關於java的基本知識,尤其是靜態的接縫。 您的示例代碼首先沒有意義。 因此:忘記嘲笑當下; 更好地專注於更好地理解代碼應該做的事情!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.