Полезный класс в проекте автоматизированного тестирования — статический, одноэлементный или другой дизайн?

Я довольно много искал об этом в переполнении стека и думаю, что этот вопрос достаточно отличается, чтобы заслужить новый вопрос.

Для интеграционных тестов мне нужно включить службу координатора распределенных транзакций (SQL Server), чтобы я мог использовать функцию отката базы данных MSTestExtensions.

Поэтому мне нужны следующие методы:

public void StartService(string serviceName)
public void StopService(string serviceName)
public void RestartService(string serviceName)

Было бы очень легко создать статический класс. Работа по превращению этого класса в синглтон в C# также несложна.

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

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


person Matt    schedule 03.11.2010    source источник


Ответы (1)


Статические классы хорошо работают, если у вас относительно мало данных и вам не нужны функции ООП. Подозреваю, что в данном случае это бы сработало.

person Pieter van Ginkel    schedule 03.11.2010