Я хочу, чтобы убедиться, что выражение в лямбда такое же, как и ожидалось выражениеRhino Mocks Тестирование лямбда-выражения
Также я хочу написать тестовый пример для ожидаемого значения
Если я пишу сопрягать это не работает
Например
public bool IsUserActive(User user)
{
userRepository.Any(x=>x.UserId== user.UserId && x.IsActive);
}
испытания блока Case
userRepository.Stub(x=>x.IsActive(Arg<User>.Matches(y=>y.IsActive)).Return(true);
Приведенное выше выражение не работает
Я видел пример, но я хочу, чтобы проверить некоторые лямбда-выражения, которые возвращают логическое значение, проверяя состояние
не имя пользователя строка
stubUserRepository.Stub(x =>
x.GetUserByName(Arg<string>.Matches(y =>
y.StartsWith("aye", StringComparison.InvariantCulture)
|| y.StartsWith("stein", StringComparison.InvariantCulture)))
.Return(theUser);
Assert.AreSame(theUser, stubUserRepository.GetUserByName("steinegger"));
Assert.AreSame(theUser, stubUserRepository.GetUserByName("ayende"));
Вместо того, чтобы утверждать, что лямбда соответствует точно лямбда, что вы ожидаете его к вам, вы должны проверять, что метод выводит значение, которое вы ожидаете для каждого из различных различные типы входов. Тестирование, что написанный код - это код, который вы написали, не особенно продуктивен. – Servy