Я использую NUnit 2 для написания некоторых модульных тестов для C#. Моя среда - это Visual Studio 2015 Professional с установленным Resharper.Как использовать тестовый пример NUnit, который зависит от запуска метода TestSetup?
Проблема, с которой я столкнулся, связана с некоторыми параметризованными тестами, которые я пытаюсь создать с помощью TestCaseSourceAttribute
. В простых случаях я могу создавать тесты, как это, что будет работать нормально:
[Test, TestCaseSource(nameof(MyTestCases))]
public void MyTest(string name) {
Assert.IsFalse(String.IsNullOrEmpty(name));
}
private static IEnumerable<TestCaseData> MyTestCases {
get {
yield return new TestCaseData("test");
yield return new TestCaseData("123");
}
}
Однако, когда я пытаюсь создать экземпляр типа, которые должны быть сопоставлены с сущностей базы данных или которые проверяют базу данных в процессе их инициализации, тест игнорируются тест-бегуном. Например:
[Test, TestCaseSource(nameof(MyTestCases))]
public void MyTest(MyMappedType instance) {
Assert.IsTrue(instance.SomeProperty);
}
private static IEnumerable<TestCaseData> MyTestCases {
get {
yield return new TestCaseData(GetAnInstanceOfMyMappedType());
yield return new TestCaseData(GetADifferentInstanceOfMyMappedType());
}
}
инстанциации MyMappedType
будет работать хорошо, если он находится в самом пробное тело, но тест игнорируется, если какой-либо из тестов создать его экземпляр.
Могу ли я заставить эти тесты работать параметризованным способом? Любые ссылки на документацию по этому вопросу?
Update:
Проблема, как представляется, из-за какой-то код в свойстве тест случае зависит TestSetup
метода уже пробежав класса. Есть ли способ сделать установку перед инициализацией каждого тестового примера, а не после?