Я использую FakeItEasy, чтобы проверить, вызван ли вызов метода публичного setter свойства.Получить метод имя свойства setter в C#
свойство называется Description
, и на данный момент я тестирую его так:
A.CallTo(model)
.Where(x => x.Method.Name.Equals("set_Description"))
.WithAnyArguments()
.MustHaveHappened();
Это работает функционально, однако недостаток использования волшебной строки для имени метода является то, что если я реорганизовать имя свойства, тест завершится неудачно, и мне придется вручную изменять строки во всех тестах.
В идеале, я хотел бы знать о пути, чтобы сделать это, как и в этой части псевдокода:
var setterName = model.GetType()
.SelectProperty(x => x.Description)
.GetSetterName();
A.CallTo(model)
.Where(x => x.Method.Name.Equals(setterName))
.WithAnyArguments()
.MustHaveHappened();
Таким образом, если я правая кнопка мыши реорганизовать Description
свойства, тестам не нужен быть обновленным. Как я могу это сделать?
Как в стороне, вы можете опустить «WithAnyArguments» здесь, если вы так склонны. –
Почему это @BlairConrad? Является ли 'WithAnyArguments' подразумеваемой, если я специально не объявляю ограничения? –
вот почему. Хм. Я не могу здесь @JamesMonger. Кажется, в начале. Ах. Потому что «владелец сообщения всегда будет уведомлен». То, чему вы учитесь. –