Как проверить, что базовый конструктор получает правильные аргументы?
Я создаю методологию написания юнит-тестов в моей компании. Мы сосредоточены на тестировании одной вещи каждый раз, но в случае проверки того, что базовый конструктор получает правильные параметры, я не нахожу ничего другого, кроме тестирования базового конструктора.
Есть ли лучший подход? Мы используем MSTest вместе с JustMock и Rhino, поэтому доступны расширенные функции, но в любом случае я не нашел пути. Найдите пример ниже:
public Car : Vehicle
{
public Car() : base(4) {};
}
public Vehicle
{
public Vehicle(int wheelNumber) {};
}
Я хотел бы поместить ожидание в базовый параметр конструктора, как я бы сделал с обычным методом.
Спасибо
2 ответа
Не ожидайте ничего о базовом конструкторе. Для вашего кода, я бы удостоверился, что Car
является транспортным средством, а затем проверьте, правильно ли задано значение wheelNumber по умолчанию (и это только в том случае, если существует открытый метод для этого).
Если конструктор для Car
повторил код в Vehicle
с участием wheelNumber
ваш тест должен пройти. И затем, когда кто-то реорганизует код, чтобы он был выполнен правильно, тест все равно должен пройти. Таким образом, вы знаете, что вы не изменили свою функциональность.
Я не уверен, что вы можете проверить базовый конструктор таким образом.
Если вы выставляете базовое свойство, возможно, вы проверяете это
Грубо говоря:
Assert.AreEqual(car.BaseProperty,4)
Или вы можете протестировать ожидаемое поведение открытого метода, который воздействует на данные / переменную, другой псевдокод:
class Vehicle
{
protected int X{}
public Vehicle(int x)
{
X= x;
++X;
}
}
car = new Car(4);
Assert.ReturnsFive(car.DoSomething(),5)