В моем домене слое я создаю много классов, который выглядит как этотАвтоматизация тестирования назначений свойств в конструкторе
public class Route
{
public Route(Location origin, Location destination)
{
this.Origin = origin;
this.Destination = destination;
}
public Location Origin { get; }
public Location Destination { get; }
}
Теперь мне нужно модульного тестирования этого конструктора
[Test]
public void PropertiesAreAssigned()
{
var origin = new Location(...);
var destination = new Location(...);
var route = new Route(origin, destination);
route.Origin.Should().Be(origin);
route.Destination.Should().Be(destination);
}
У меня есть довольно многие из тех классов и тестов, которые очень похожи друг на друга. То, что я хотел бы, чтобы иметь какой-то метод, который просто принимает аргументы типа, а затем делает все испытания для меня, то есть
- создать экземпляр переменной каждого параметра конструктора (с цельным графа зависимостей, необходимых)
- передать эти переменные в конструктор
- проверяет, что значения свойств назначены правильно
Я уверен, что я могу сделать это с немного размышлений, но, возможно, есть существующая библиотека, что делать? Дополнительные тесты приветствуются, например.
- Проверка нулевого аргумента бросает правильное исключение
- тестирования, что Equals и GetHashCode правильно
Как вы их TDD? Я видел ошибки в конструкторах такого рода, поэтому почему бы не проверить их, если это легко (вот чего я пытаюсь достичь здесь). – Mikhail
Если вы работаете в TDD, вам нужно написать только конструктор, необходимый вашему тесту, любое поле или объект должен быть создан непосредственно для нужд поведения. – rad
. Вы можете найти больше ответов в этой теме http://stackoverflow.com/questions/357929/это-он-важно к блоку тест-а-конструктор – rad