-2

我使用 SilkTest 和 Java 自动化测试。在这个关键字中,我得到列表并将其与预期的进行比较。有没有办法优化我的代码,因为我已经多次声明了每个列表。

public void vérification_des_listes(String listAttendu) {
    final String[] list1 = listAttendu.split(";", -1);
    final ArrayList<String> listExpected = new ArrayList<>();
    for (final String I : list1) {
        listExpected.add(I);
    }
    System.out.println(listExpected.toString());
    final Object[] list2 = desktop.<DomListBox>find("BrowserApplication.BrowserWindow.Personne.Titre_champ").getItems().toArray();
    final ArrayList<String> listFound = new ArrayList<>();
    for (final Object E : list2) {
        listFound.add(E.toString());
    }
    System.out.println(listFound.toString());
    assertTrue("", listExpected.equals(listFound));

} 
4

2 回答 2

0

代替

 final String[] list1 = listAttendu.split(";", -1);
 final ArrayList<String> listExpected = new ArrayList<>();
 for (final String I : list1) {
     listExpected.add(I);
 }

你可以使用

final String[] list1 = listAttendu.split(";", -1);
final List<String> listExpected = Arrays.asList(list1);

请参阅https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html#asList(T...)

于 2022-02-25T12:05:14.693 回答
0
  public static void vérification_des_listes(String listAttendu) {
    final String[] list1 = listAttendu.split(";", -1);
    final List<String> listExpected = Arrays.asList(list1);


    final Object[] list2 = desktop.<DomListBox>find("BrowserApplication.BrowserWindow.Personne.Titre_champ").getItems().toArray();

    final List<String> listFound = Arrays.stream(list2).map(Objects::toString).toList();

     Assertions.assertEquals(listExpected, listFound);
  }

您可以利用类 Arrays,还可以进行一些 java 流处理以将对象转换为 String。还可以查看 assertj 以更灵活的方式比较集合(可以在此处查看示例)。

于 2022-02-25T12:46:49.387 回答