Как проверить свойство аргумента функции в 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 свойство имеет правильное значение.

Хотите проверить тему внутри с? Это странно для меня, поскольку вы создаете модульные тесты, так что нет необходимости проверять свой тест таким образом, верно?

Другие вопросы по тегам