RedundantArgumentMatcherException с использованием NSubstitute и NCrunch - PullRequest
0 голосов
/ 02 августа 2020

У меня есть образец кода (вставлен ниже). Я использую Xunit, NSubstitute и NCrunch. Когда я запускаю тест в обозревателе тестов Visual Studio, он проходит. Когда я отлаживаю, тест проходит правильно. С NCrunch я сталкиваюсь с причудливым поведением, тест проходит, а затем терпит неудачу, затем он проходит, а затем терпит неудачу, и так продолжается.

[Fact]
public void Test()
{
    var drink = Substitute.For<IDrink>();
    var greetings = new Greetings();

    var derived = new Derived();
    derived.Test(drink, greetings);
}

public class Greetings
{
    public string Message { get; set; }
}

public interface IDrink
{
    void Prepare(Greetings greetings);
}

public abstract class Base
{
    public abstract void Test(IDrink drink, Greetings greetings);
}

public class Derived : Base
{
    public override void Test(IDrink drink, Greetings greetings)
    {
        drink.Prepare(greetings); /////////// The error is here
    }
}

public class NullDerived : Derived
{
    public override void Test(IDrink drink, Greetings greetings)
    {
        throw new Exception("No value found");
    }
}

Ошибка NCrunch: 1005 *

Я попытался удалить параметр из метода Prepare (Greetings greetings), затем NCrunch каждый раз проходит тест.

Как подсказывает ошибка, я не передаю параметры из теста правильно.

Мой вопрос: как правильно передать объект приветствия методу Prepare. Я пробовал Arg.Any, но это не сработало.

Любая помощь приветствуется.

Редактировать 1: Я наблюдаю такое же поведение при использовании покрытия модульными тестами Reshaper .

...