Как получить вокруг сценария, где TestFixture вы пытаетесь определить потребности ссылаться на типах, которые не имеют конструктора без аргументов?NUnit TestFixture с без аргументов конструкторов
Я пытаюсь проверить интерфейс, который имеет несколько реализаций. Из документации NUnit он показал, как это может быть установка с дженериков, как это (где я могу определить несколько типов реализации):
[TestFixture(typeof(Impl1MyInterface))]
[TestFixture(typeof(Impl2MyInterface))]
[TestFixture(typeof(Impl3MyInterface))]
public class TesterOfIMyInterface<T> where T : IMyInterface, new() {
public IMyInterface _impl;
[SetUp]
public void CreateIMyInterfaceImpl() {
_impl = new T();
}
}
Проблема возникает потому, что Impl1MyInterface, Impl2MyInterface и т.д. не имеют без аргументов конструктора так, когда NUnit пытается обнаружить доступные тестовые случаи, которые я получаю эту ошибку (и тесты не показывают в VS):
Exception System.ArgumentException, исключение брошено обнаружения тестов в XYZ.dll
Есть ли способ обойти это? Не имеет смысла определять конструкторы no-arg, потому что мой код нуждается в этих значениях для работы.
-Это фактически не _impl = new T(); это проблема, скорее, это атрибут typeof на TestFixture, который вызывает проблему. – snappymcsnap
Вы пытались удалить новое() общее ограничение, а также вызов new()? т. е. где T: IMyInterface {... –