внутри метода, который я оцениваю в своем модульном тесте, я хочу вернуть имитированное значение, которое вызывает мой шаблон репозитория, но всегда возвращает ноль.
Я пробовал использовать оба варианта ниже, ноповедение такое же (возвращаемое значение NULL):
Repository.FindAsync<User>(Arg.Is<Expression<Func<User, bool>>>(x => x.Email == "Test")).Returns(new User() { FirstName = "Test"});
и
Repository.FindAsync<User>(x => x.Email == "Test").Returns(new User() { FirstName = "Test"});
Я вставляю весь код моего модульного теста
public class WhenTestingUser : WhenTesting<Customer>
{
private IRepository Repository { get; set; }
protected override void Given()
{
Repository = Fixture.Freeze<IRepository>();
Repository.Find<User>(Arg.Any<Expression<Func<User, bool>>>()).ReturnsNull();
Repository.FindAsync<User>(Arg.Is<Expression<Func<User, bool>>>(x => x.Email == "Test")).Returns(new User() { FirstName = "Test"});
}
protected override void When()
{
SystemUnderTest.UpdateUser().GetAwaiter();
}
[Test]
public void WhenCalled()
{
throw new NotImplementedException();
}
}
Я работаюс AutoFixture.AutoNSubstitute, NSubstite и NUnit