Какая разница между подделкой, издевательством и окурком?

Монитор кампании имеет отличную матрицу поддержки , в которой подробно описано, что поддерживается, а что нет среди разных почтовых клиентов.

Вы можете использовать службу, например Litmus , чтобы просмотреть, как появляется электронное письмо по нескольким клиентам и попадают ли они в фильтры и т. д.

615
задан Sanghyun Lee 15 September 2012 в 07:55
поделиться

3 ответа

Можно получить некоторую информацию:

От Martin Fowler о Насмешке и Тупике

Фальшивка объекты на самом деле имеют рабочие реализации, но обычно берут некоторый ярлык, который делает их не подходящими для производства

, Тупики предоставляют консервированные ответы на вызовы, выполненные во время теста, обычно не отвечающего вообще ни на что снаружи, что программируется в для теста. Тупики могут также записать информацию о вызовах, таких как почтовый тупик шлюза, который помнит сообщения, которые она 'отправила', или возможно только, сколько сообщений она 'отправила'.

Насмешки - то, о чем мы говорим здесь: объекты, предварительно запрограммированные с ожиданиями, которые формируют спецификацию вызовов, которые они, как ожидают, получат.

От xunitpattern:

Фальшивка : Мы получаем или создаем очень легкую реализацию той же функциональности в соответствии с компонентом, от которого зависит SUT, и дайте SUT команду использовать его вместо реального.

Тупик : Эта реализация настроена для ответа на вызовы от SUT со значениями (или исключения), который осуществит Непротестированный Код (см. Производственные Ошибки на странице X) в SUT. Ключевой признак для использования Тестового Тупика имеет Непротестированный Код, вызванный неспособностью управлять косвенными исходными данными фиктивного объекта SUT

, который реализует тот же интерфейс как объект, от которого зависит SUT (Система Под Тестом). Мы можем использовать Фиктивный объект в качестве наблюдательного поста, когда мы должны сделать Проверку Поведения, чтобы не иметь Непротестированное Требование (см. Производственные Ошибки на странице X), вызванный неспособностью наблюдать побочные эффекты вызова методов на SUT.

Лично

я пытаюсь упростить при помощи: Насмешка и Тупик. Я использую Насмешку, когда это - объект, который возвращает значение, которое установлено к протестированному классу. Я использую Тупик для имитации Интерфейсного или Абстрактного класса, который будет протестирован. На самом деле действительно не имеет значения, что Вы называете им, они - все классы, которые не используются в производстве и используются в качестве служебных классов для тестирования.

482
ответ дан Michael 15 September 2012 в 07:55
поделиться
  • 1
    Я верю в новые версии it' s string.IsNullOrEmpty(YourString) – sylverfyre 25 April 2013 в 16:07

Тупик, Фальшивки и Насмешки имеют различные значения через другие источники. Я предлагаю, чтобы Вы представили свою команду внутренние термины и согласовали их значение.

я думаю, что важно различать два подхода: - проверка поведения (подразумевает замену поведения) - проверка конечного состояния (подразумевает эмуляцию поведения)

Рассматривают электронную почту, отправляющую в случае ошибки. При выполнении проверки поведения - Вы проверяете, что метод Send из IEmailSender выполнялся однажды. И необходимо эмулировать результат возврата этого метода, возвратить идентификатор отправленного сообщения. Таким образом, Вы говорите: "Я ожидаю, что Send будет назван. И я просто возвращу макет (или случайный) идентификатор для любого вызова" . Это - проверка поведения: emailSender.Expect(es=>es.Send(anyThing)).Return((subject,body) => "dummyId")

При выполнении проверки состояния необходимо будет создать TestEmailSender, который реализует IEmailSender. И реализация Send метод - путем сохранения входа к некоторой структуре данных, которая будет использоваться для проверки будущего состояние как массив некоторых объектов SentEmails и затем это тестирует Вас, проверит, что SentEmails содержит ожидаемую электронную почту. Это - проверка состояния: Assert.AreEqual(1, emailSender.SentEmails.Count)

От моих чтений я понял что проверка Поведения обычно называемый Насмешки . И проверка состояния обычно называемый Тупики или Фальшивки .

1
ответ дан 22 November 2019 в 21:49
поделиться

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

6
ответ дан 22 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: