Переключение между разными платформами - PullRequest
0 голосов
/ 11 мая 2018

Я пишу тестовые сценарии для разных платформ на C #, используя базу данных SQLite для автоматизации.Тестовые сценарии различны для каждой другой платформы, и мне нужно записать его в одном файле. Я не могу найти лучший способ переключения между платформами (платформа - это музыкальный проигрыватель разных производителей).В настоящее время я использую глобальную константу для того же, но это не лучший способ для этого.Например: что-то вроде

bool TestCase1()
 {
    //functionality which is common among all platforms
    if (PlatformA)
    {
        //do this
    }
    else if (PlatformB)
    {
        //do this
    }
    else
    {
        //do this
    }
    return result;
 }

Пожалуйста, предложите лучший способ переключения.Я ищу общий способ, чтобы в будущем, если появится новая платформа с аналогичной функциональностью, не будет необходимости компилировать код.

1 Ответ

0 голосов

Стандартным способом будет использование «интерфейса», который вы вводите, используя инверсию зависимости Инжекция метода управления.

Из коробки есть несколько доступных IoC в зависимости от платформы, которую вы программируете (ASP, UWP ..), что они обычно делают в регистре запуска в интерфейсе или экземпляре, который выполняет «что-то», а затем в приложении. делает ли это что-либо, используя «абстракцию» этого кода, контракта. Это обычно абстрактный класс или интерфейс. Есть ли у вас требование во время выполнения, чтобы изменить, иначе есть оба варианта, запасной метод?

Поскольку вы проводите "модульное" тестирование, вы можете провести оба теста с использованием Mocking framework. MOQ - один из них, который хорошо документирован.

если вы проводите интеграционное тестирование, можно / можно написать 2 теста по одному для каждой реализации. Наличие 2-х тестов облегчает понимание того, что тестируется, и насколько стабильно этот тестируемый код.

Надеюсь, что помог

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...