Я тестирую различные серверы, которые имеют ту же модель, которые уже тестировались модульными тестами. Теперь я хочу протестировать реальные серверы (не только общую модель).Используйте тот же TestClass с различным базовым классом
При тестировании общей модели я создал поддельный общий сервер с поддельным адаптером, который был определен в базовом тестовом классе, и все тестовые классы наследуют от него. Это сделано более ста тестов.
Теперь мне нужно использовать те же классы тестов, но с различными базовыми классами (для разных реальных серверов). Они используют одни и те же данные тестирования и имеют одинаковые результаты. Они отличаются некоторым внутренним подходом.
Можно ли как-то вызывать все тесты столько раз, сколько количество серверов, каждый раз с различным базовым тестовым классом (тип сервера и конструктор)?
пример:
[TestClass]
public class GeneralServerTests : BaseServer
{
[TestMethod]
public void IsAlive_ChecksInteraction_ReturnsTrue()
{
Assert.IsTrue(GeneralServer.Adapter.IsAlive());
}
...
}
Базовый класс испытаний
[TestClass]
public abstract class BaseServer
{
protected Server GeneralServer;
[TestInitialize]
public void Setup()
{
//here I assign the Server constructor,
}
}
Поэтому мне нужно вызвать класс GeneralServerTests с различными серверами.
Надеюсь, вы понимаете, что я имею в виду :)
любое решение?
я получаю то, что вы пытаетесь сказать, но в целом блок тестирование не должно вовлекать сервер каким-либо образом (отдельно, от ку rse, с сервера сборки). Вы должны тестировать пути кода, а не сервер. Если вы не можете что-то нужно переделать. Если ваша логика зависит от сервера, возможно, вам нужен какой-то рефакторинг, чтобы сделать ваш серверный класс более общим, с разницей в строках подключения. Знак того, что что-то сложно или беспорядочно тестировать, не означает, что вы недостаточно хорошо тестируете, это означает, что тестируемый код недостаточно хорошо написан. Это не всегда так, но это справедливое предположение. – Magus