Как проверить свойство аргумента функции в NMock
Скажем, если у меня был следующий интерфейс по умолчанию (NMock). Как я могу проверить этот email.Subject = 'xyz'?
В настоящее время я делаю что-то вроде
IEmailService s = mocks.NewMock<IEmailService>();
Expect.Once.On(s).Method("Send").With(?????)
s.Send(new Email { Subject = 'rarr' });
mocks.Verify...();
interface EmailService { void SendEmail(Email email); }
2 ответа
Решение
Вы можете использовать Has.Property
подобрать вот так:
IEmailService s = mocks.NewMock<IEmailService>();
Expect.Once.On(s).Method("Send").
With(Has.Property("Subject", Is.EqualTo("rarr")));
s.Send(new Email { Subject = 'rarr' });
mocks.Verify...();
Или вы можете написать собственный сопоставитель, чтобы убедиться, что аргумент имеет тип Email
и что его Subject
свойство имеет правильное значение.
Хотите проверить тему внутри с? Это странно для меня, поскольку вы создаете модульные тесты, так что нет необходимости проверять свой тест таким образом, верно?