Разрешение сообщения NUnit "Не найден подходящий конструктор" - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть класс модульного теста:

[TestFixture]
public class SomeClassIntegrationTests : SomeClass

С открытым конструктором:

public SomeClassIntegrationTests (ILogger l) : base(l)
{
}

При попытке запустить тест я получаю сообщение об ошибке «Не найден подходящий конструктор».

Я попытался изменить атрибут TestFixture на [TestFixture(typeof(ILogger))], но это привело к тому же сообщению об ошибке, не позволяющему мне запустить или отладить тест.

Любая идея, как изменить TestFixture атрибут, позволяющий запустить тест или решить эту проблему другим способом?

1 Ответ

0 голосов
/ 20 ноября 2018

Вероятно, вам нужен экземпляр класса, реализующего ILogger.

Опция 1: используйте null (если регистратор на самом деле не требуется):

[TestFixture(null)]

Опция 2: всегда используйтетот же конкретный класс (или макет): добавьте конструктор без параметров

SomeClassIntegrationTests()
: this(new MyLogger())
{
}

и

[TestFixture]

Вариант 3: вы можете захотеть проверить с разными регистраторами

SomeClassIntegrationTests(Type t)
: this((Ilogger)Activator.CreateInstance(t))
{
}

и

[TestFixture(typeof(MyLogger))]
...