Как избежать дублирующего кода при использовании насмешек в unittests

Demo image Перед использованием любого класса col , вам нужно добавить один класс, который является классом строки .

//write col classes here

класс строк используется для разделения столбцов в одной строке. Поэтому по умолчанию он устанавливает все содержимое по горизонтали. Для получения более подробной информации, пожалуйста, обратитесь к этому документу. Структура сетки Bootsrap

Вот точный код, который вы ищете.

    
Game Catalog
 
  
    
    




  

Используя этот код, 2 изображения идут в один ряд. Вы можете изменить отступы в соответствии с вашими требованиями.

8
задан Fadeproof 6 January 2009 в 16:18
поделиться

5 ответов

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

0
ответ дан 5 December 2019 в 20:20
поделиться

"инстанцирование каждой из насмешек несколько раз" не является проблемой. Объекты свободны.

Просто убедитесь, что Вы не определяете ложные классы многочисленные времена. Классы являются дорогими.

Кроме того, у Вас есть метод "установки" в TestCase, который позволяет Вам создавать приспособление, которое используется всеми тестами. Да, это восстановлено для каждого теста. Нет, это не проблема, если это не крайне медленно.

5
ответ дан 5 December 2019 в 20:20
поделиться

Вот мое взятие..

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

Насмешки, я предполагаю, должен использоваться, когда Вы тестируете некоторое динамическое поведение.. что-то как.. сделал метод в подсистеме, был назван, когда я выполняю некоторое действие с SUT.. и позже по требованию проверьте () для проверки этого поведения... существует также хорошая статья о Martin Folwer bliki, Насмешка Не Тупики

1
ответ дан 5 December 2019 в 20:20
поделиться

Запись и платформы Воспроизведения как EasyMock перестали работать, если Вы не устанавливаете ожидание по ложному вызову. Но платформы как Mockito просто записывают все вызовы и позволяют Вам проверить только тех тот вопрос. Таким образом, Вы не должны устанавливать ожидание по всем методам во всех тестах.

И возвращаясь к Вашей проблеме инстанцирования Насмешек в каждом методе тестирования, существует лучший путь, чем использование установки () метод. Mockito предоставляет @Mock аннотацию. Таким образом, Вы объявляете свои переменные (как поля) как: Репозиторий @Mock repositoryMock

и просто назовите initMocks () в установке (). Все объявленные фиктивные объекты автоматически доступны в Ваших тестах, явно не создавая Насмешки.

0
ответ дан 5 December 2019 в 20:20
поделиться

Предполагая, что вы используете NUnit, вы можете использовать переменные экземпляра для своих Mocks и сбросить их в Setup / Teardown. Если вы видите повторяющиеся шаблоны, то сделайте то, что вы делаете с производственным кодом: проведите рефакторинг и извлеките вспомогательные методы, которые выражают то, что вы пытаетесь достичь (если нет никакого общего, то есть проблема с дизайном производственного кода).

Если в настройке есть значительные различия, подумайте о написании более одного тестового класса для вашего производственного класса.

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

Слушайте тесты!

2
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

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