相关疑难解决方法(0)

单元测试:使用 for 循环处理集合,但不使用流处理

单元测试的问题是同一集合在流和 for 循环中的处理方式不同。两种情况下的集合都是空的(data.size() = 0),但在情况 1 中,该集合以某种方式进行了处理,换句话说,它将进入 for 循环。在情况 2 中,该集合只是被跳过(这是预期的,因为它是空的)。

测试使用 Mockito,并将Result<Record>用于 JOOQ。

测试是旧的并且没有变化,唯一的变化是从 for 循环到流。

情况1

private SearchResult iterateData(
      Result<Record> data, ...) {

      for (Record record : data) {
           doSomething(record);
    }
Run Code Online (Sandbox Code Playgroud)

案例2

private SearchResult iterateData(
      Result<Record> data, ...) {
      data.stream().forEach(record -> doSomething(record)); 
Run Code Online (Sandbox Code Playgroud)

案例 1 for 循环示例的屏幕截图

模拟结果对象

private DefaultSearchRequestModel rowSpecificValuesTestSetup(
      parameters...) {
    

    DefaultSearchRequestModel searchRequest = new DefaultSearchRequestModel(
        Arrays.asList(....),
        Collections.singletonList(
            new SearchFilter(
                "test",
                Collections.singletonList(...)));

    List<Column> columns =
        this.searchService.filterUserAllowedColumns(...);

    Condition searchCondition =
        this.searchRepositoryMock.getSearchConditions(...);

    List<TableJoinMapping> joinMappings = …
Run Code Online (Sandbox Code Playgroud)

java mockito jooq java-stream

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

如何编写Junit for Interface默认方法

请帮助编写Junit接口默认方法.

public interface ABC<T, D, K, V> {
    default List<String> getSrc(DEF def, XYZ xyz) throws Exception {
    }
}
Run Code Online (Sandbox Code Playgroud)

ABC:接口名称.DEF和XYZ:类名

java junit unit-testing java-8

8
推荐指数
3
解决办法
5557
查看次数

标签 统计

java ×2

java-8 ×1

java-stream ×1

jooq ×1

junit ×1

mockito ×1

unit-testing ×1