При использовании MockBehavior.Strict
это означает, что для макета любой вызываемый член должен иметь соответствующий Setup
, иначе он выдаст исключение.
Когда вы используете MockBehavior.Loose
, который также является значением по умолчанию, то при вызове участника, который не был настроен, он просто возвращает тип результата по умолчанию для члена.
Показанная текущая настройка будет работать для получения значения из свойства.
Из этого исключения выясняется, что тест пытается установить значение, которое не было установлено. Помните, что свойства - это два метода в одном (get_Property и set_Property).
Предложить заглушить свойство, чтобы оно отслеживало присвоенные значения.
// start "tracking" sets/gets to this property
VeracrossMock.SetupProperty(_ => _.Authorization);
var byteArray = Encoding.ASCII.GetBytes("username:password1234");
var authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
//set value
VeracrossMock.Object.Authorization = authorization;
Ссылка Быстрый запуск Moq: Свойства