使用JUnit和Hamcrest的简单验证

问题描述 投票:0回答:1

[我有一个包含子ID(childid1,childid2,childid3)和状态映射的映射,并且我有一个包含所有ID(例如childid1,childid2,childid3等)的列表]

所有这些子ID都映射到单个父ID,例如PID和PID也具有某些状态。当我将PID的状态从A更改为B时,然后根据条件,孩子身份的状态会从A更改为B,而B仍然是B,状态C仍然是C。

[当我将PID的状态从B更改为C时,然后根据情况,孩子的状态从A更改为C,而B仍然是B,状态C仍然是C。

无需编写任何复杂的逻辑,就可以使用JUnit 5和Hamcrest进行验证的任何简单方法。类似于:

if(updateStatus.equals("A")){
            assertAll("",
                    () -> {
                        childIds.stream().forEach(id -> {
                            assertThat("", idStatusMap.get(id).equals("A"), is("B"));
                            assertThat("", idStatusMap.get(id).equals("B"), is("B"));
                            assertThat("", idStatusMap.get(id).equals("C"), is("B"));
                        });
                    });
        }

感谢您的帮助。谢谢

java junit5 hamcrest
1个回答
0
投票

我不太了解您用于更改子ID的逻辑/控制工作流程。但是,我认为类似这样的方法应该起作用:

if (updateStatus.equals("A") {
  Optional<> result = childIds.stream()
    .filter(id -> idStatusMap.get(id).equals("A") && id.equals("B"))
    .filter(id -> idStatusMap.get(id).equals("B") && id.equals("B"))
    .filter(id -> idStatusMap.get(id).equals("C") && id.equals("B"))
    .findAny();

  assertTrue(result.isPresent());
}
© www.soinside.com 2019 - 2024. All rights reserved.