如何在不同类别之间组织共享设置逻辑

时间:2020-03-02 05:59:56

标签: testng

我想写两个类:一个类用于一组CRUD API,另一类用于读/写API。两组都共享一些逻辑(为每个测试方法创建数据库客户端并初始化一些参数)。现在,我将相同的设置逻辑复制到两个类中,如下所示:

public static void main(String[] args) {
    List<String> alphaNumericList = new ArrayList<String>();
    alphaNumericList.add("Demo.23");
    alphaNumericList.add("Demo.1000");
    alphaNumericList.add("Demo.12");
    alphaNumericList.add("Demo.12");
    alphaNumericList.add("Test.01");
    alphaNumericList.add("Test.02");
    alphaNumericList.add("Test.100");
    alphaNumericList.add("Test.99");

    Map<String, List<Integer>> map = new HashMap<>();

    for (String val : alphaNumericList) {
        String key = val.split("\\.")[0];
        Integer value = Integer.valueOf(val.split("\\.")[1]);

        if (map.containsKey(key)) {
            map.get(key).add(value);
        } else {
            List<Integer> intList = new ArrayList<>();
            intList.add(value);
            map.put(key, intList);
        }
    }

    for (Map.Entry<String, List<Integer>> entry : map.entrySet()) {
        List<Integer> valueList = entry.getValue();
        Collections.sort(valueList, Collections.reverseOrder());
        System.out.print(entry.getKey() + "." + valueList.get(0) + " ");
    }
}

Class A { Client client; Request requestRepeatedForEachMethod; @ BeforeClass public void classSetup() { client = initializeClientMethod(); } @BeforeMethod public void methodSetup() { requestRepeatedForEachMethod = initializedRequest(); } } 仅复制相同的Class BBeforeClass逻辑。我想知道是否有一个好的方法 1.可以将设置逻辑写在一个地方 2.还要确保那些测试可以并行运行(为什么?因为BeforeMethod会在并行运行测试方法时弄乱,但是如果我按顺序运行它们会因为某些测试而减慢很多速度很费时间。

0 个答案:

没有答案