Поскольку это свойство только для чтения, вам нужно сказать:
stubRepository.Stub(x => x.StoreDeviceID).Return("test");
Обычно с заглушками свойства используются как обычные свойства C #.Поэтому для свойств, не предназначенных только для чтения, вы должны сказать: stubRepository.someProperty = "test";
Также обратите внимание, что если вы хотите настроить метод , чтобы он вел себя определенным образом, независимо от того, является ли он ложным илизаглушка, вы всегда говорите:
stubRepository.Stub(x => x.someMethod()).Return("foo");
Помните, заглушки существуют для того, чтобы снабжать ваши юнит-тесты необходимыми зависимостями, но не для выполнения проверок;это то, что издевается.
Используйте заглушку, если вы хотите указать зависимость, которая ведет себя определенным образом.Используйте макет, если хотите убедиться, что с определенной зависимостью правильно взаимодействовали.
Из (выдающегося) Rhino Wiki :
Макетобъект, на который мы можем установить ожидания и который проверит, что ожидаемые действия действительно произошли.Заглушка - это объект, который вы используете для передачи тестируемого кода.Вы можете настроить ожидания, чтобы они действовали определенным образом, но эти ожидания никогда не будут проверены.Свойства заглушки будут автоматически вести себя как обычные свойства, и вы не можете устанавливать на них ожидания.
Если вы хотите проверить поведение тестируемого кода, вы будете использовать макет с соответствующим ожиданием, иподтвердите это.Если вы хотите просто передать значение, которое, возможно, должно действовать определенным образом, но не является целью этого теста, вы будете использовать заглушку.
ВАЖНО: заглушка никогда не приведет к тому, что тестошибка.