相关疑难解决方法(0)

如何让方法返回传递给它的参数?

考虑一个方法签名,如:

public String myFunction(String abc);
Run Code Online (Sandbox Code Playgroud)

Mockito可以帮助返回方法收到的相同字符串吗?

java mockito

622
推荐指数
10
解决办法
32万
查看次数

我可以将数组作为参数传递给Java中带有变量参数的方法吗?

我希望能够创建一个像这样的函数:

class A {
  private String extraVar;
  public String myFormat(String format, Object ... args){
    return String.format(format, extraVar, args);
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是在方法中args处理,因此是单个参数,而我希望每个in 都作为新参数传递.既然也是一个带有变量参数的方法,这应该是可能的.Object[]myFormatString.formatObjectargsString.format

如果这是不可能的,有没有像这样的方法String.format(String format, Object[] args)?在这种情况下,我可以在前面加上extraVarargs使用新的数组,并把它传递给该方法.

java arrays backwards-compatibility variadic-functions

256
推荐指数
5
解决办法
20万
查看次数

Java枚举在mockito的thenReturn中的列表

有没有办法在mockito的thenReturn函数中枚举列表中的项目,所以我返回列表中的每个项目.到目前为止我已经这样做了:

List<Foo> returns = new ArrayList<Foo>();
//populate returns list

Mockito.when( /* some function is called */ ).thenReturn(returns.get(0), returns.get(1), returns.get(2), returns.get(3));
Run Code Online (Sandbox Code Playgroud)

这完全符合我的要求.每个函数被调用时,它会从列表,如返回一个不同的对象get(1),get(2)等等.

但是我希望简化这个并使其对任何大小的列表更具动态性,以防我有一个大小为100的列表.我尝试过这样的事情:

Mockito.when( /* some function is called */ ).thenReturn(
    for(Foo foo : returns) {
        return foo;
    }
);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

Mockito.when(service.findFinancialInstrumentById(eq(1L))).thenReturn(
    for (int i=0; i<returns.size(); i++) {
        returns.get(i);
    }
);
Run Code Online (Sandbox Code Playgroud)

但是,这并不工作....我怎么这么枚举内的这个名单thenReturn....我遇到其他的方法来喜欢then或者answer,但我不知道哪一个最适合在这种情况下.

java junit enumeration list mockito

9
推荐指数
2
解决办法
8011
查看次数

Java mockito - 如何在循环中添加 return 语句?

when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2)
            .thenReturn(mockFetchReturn3);
Run Code Online (Sandbox Code Playgroud)

这工作正常,我可以使用不同的输出调用模拟方法三次。但是我的输出列表可以针对每个测试场景进行更改,并且我找不到如何根据不同的返回在循环中完成此操作。例如,如果我传递 10 个 mockFetchReturn3 对象的列表,那么应该有 10 个 return 语句。

junit mockito

1
推荐指数
1
解决办法
1490
查看次数