Я реализовал структуру данных стека на основе массива вместе с соответствующими модульными тестами. Этот стек реализует мой интерфейс IStack. Таким образом, на данный момент, мой класс UT выглядит примерно так:Инъекция зависимостей в модульных тестах
[TestClass]
public class Stack_ArrayBased_Tests
{
//check against empty collection
[TestMethod]
public void IsEmpty_NoElements()
{
var myStack = new Stack_ArrayBased_Example1(10);
var exp = true;
var act = myStack.IsEmpty();
Assert.AreEqual(exp, act);
}
Теперь я собираюсь реализовать связанный список стек на основе. Этот стек будет наследовать от того же интерфейса IStack.
Я хотел был бы Unit Test связанного списка Stack. Поскольку оба наследуются от одного и того же интерфейса, я должен иметь возможность воспользоваться уже реализованным модульным тестом, чтобы предотвратить ненужное дублирование кода.
Что было бы лучшим способом создать два отдельных класса тестов модулей, один для Stack на основе массива, а другой для Stack String, связанный с Linked List, который будет использовать те же методы тестирования единицы измерения? Я предполагаю, что инъекция зависимостей будет ответом, но как я буду заниматься этим?
Как и с любым другим кодом, вы должны Реорганизовать код, который принадлежит оба сценария в собственный класс, поэтому его можно использовать в разных случаях использования. Поэтому, когда вы уже * имеете * реализацию для тестового случая 1 рефакторируете поведение в свой класс и используете экземпляры в обоих тестах. – HimBromBeere