Можем ли мы использовать статические методы Pojo при одновременном запуске тестов? - PullRequest
0 голосов
/ 07 октября 2019

В настоящее время я установил среду тестирования автоматизации, которая выполняет следующее:

  1. Одновременно выполняет определенные тесты (то есть, тесты x3 одновременно).
  2. Фреймворк использует BDD Cucumber.
  3. Мне нужно хранить и обмениваться данными по шагам.

Мне нужен ваш совет относительно использования статических методов и переменных, когдаодновременное выполнение тестов, будут ли данные правильно храниться даже при одновременном запуске тестов?

public class Chat_Pojo {

    private static String messageToSend;

    public static void storeUniqueMessage(String message) {
        messageToSend = message;
    }

    public static String getUniqueMessage() {
        return messageToSend;
    }

    public static void wipeMessage() {
        messageToSend = null;
    }
    ...
}

1 Ответ

1 голос
/ 07 октября 2019

private static String messageToSend; относится только к классу Chat_Pojo, поэтому, если вы не хотите делиться этим значением, вы должны либо изменить его с помощью private static ThreadLocal<String> messageToSend. В этом случае каждый поток будет иметь свое значение messageToSend. Соответственно, если вы хотите получить это значение, вам нужно вызвать set() или get() Если вы хотите разделить это значение между потоками, вам нужно синхронизировать методы модификации (public static void storeUniqueMessage(String message) и public static void wipeMessage())

...