Метод переопределения Возвращаемое значение - PullRequest
1 голос
/ 16 июля 2011

Я хочу, чтобы определенный метод объекта всегда возвращал определенное значение при запуске модульных тестов.Например.

  • Объект A имеет метод A, который обычно возвращает «Foo»
  • Объект B создает экземпляр объекта A и вызывает метод A в методе B
  • Модульный тест Aвызывает метод B

В модульном тесте я хочу, чтобы метод A возвращал "Bar", но во всех других случаях я хочу возвращать "Foo".

Я не думаю,Пересмешка будет работать, так как вам нужно иметь ссылку на объект заранее (по крайней мере, в Moq).Есть идеи?

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

Если возможно, вы должны передать объект A как зависимость в объект B. Зависимость, которую вы затем можете смоделировать, используя Moq, и заставить ее возвращать Bar при вызове метода A.

Если создание объекта A выполняется внутренне в B, то объект B не тестируется для этой части (следовательно, почему вы должны передать свои зависимости).

1 голос
/ 16 июля 2011

Насмешка - это инструмент, который можно использовать для такого сценария.Большинство фальшивых фреймворков позволит вам симулировать объект А без создания экземпляра.Например, родинки от Microsoft позволят вам реализовать описанный вами сценарий.

Родинки

...