Обзор терминологии поблочного тестирования (тупик по сравнению с насмешкой, интеграцией по сравнению со взаимодействием)?

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

можно соответствовать, вложил/соединил элементы до фиксированной глубины, где глубина только ограничена памятью, потому что автомат становится очень большим. На практике, однако, необходимо использовать автомат с магазинной памятью, т.е. синтаксический анализатор для контекстно-свободной грамматики, например, LL (сверху вниз) или LR (вверх дном). Необходимо принять худшее поведение во время выполнения во внимание: O (n^3) по сравнению с O (n), с n = длина (вводится).

существует много avialable парсеров-генераторов, например ANTLR для Java. Нахождение существующей грамматики для Java (или C) является также не трудным.
Для большего количества фона: Теория автоматов в Википедии

35
задан zhon 31 January 2014 в 04:11
поделиться

4 ответа

When it comes to mocks vs. fakes vs. stubs, there are actually a few different ways that people interpret them. I usually borrow the meanings defined by Martin Fowler:

  1. Stub objects provide a valid response, but it's static -- no matter what input you pass in, you'll always get the same response.
  2. Fake objects act like the real object, but they go about it in a simpler way -- such as a DAO that uses a Map to store data instead of a real database.
  3. Mock objects are used in mock test cases -- they validate that certain methods are called on those objects.

Interaction testing is a general term that refers to unit tests which ensure that the interaction between objects is correct (making sure that expected methods are called). This is opposed to state (or classical) testing, which doesn't care what happens in the methods, so long as the resulting state is correct. These types of testing are compared in Fowler's article that I linked above.

Integration testing really isn't an aspect of unit testing, it is a level above the unit tests. It takes different units and verifies that they work together correctly.

50
ответ дан 18 November 2019 в 00:35
поделиться

Я прочитал (и настоятельно рекомендую) Искусство модульного тестирования Роя Ошерова. Он использует упрощенный набор терминологии.

Перефразируя свою книгу ...

Integration Test - любой тест, выходящий за пределы текущего процесса или объекта для взаимодействия с чем-то другим

Interaction Test ] - тест на то, как объекты работают вместе

State Test - тест на результаты, полученные операцией

Fake - любой замещающий объект, который '

4
ответ дан 18 November 2019 в 00:35
поделиться

Фаулер, конечно, проделал огромную работу по различению моков и заглушек , но для меня книга XUnit Test Patterns является справочной, а я ' Я предлагаю проверить Mocks, Fake, Stubs и Dummies для всестороннего сравнения.

Да, я знаю, это сбивает с толку, и поэтому я предлагаю проверить Mocks and Stubs не Шпионы , затем , давайте шпионим и, наконец, Mockito - новая структура Mock на блоке тоже.

Что касается различных типов тестов, то упрощенное объяснение может быть таким (это не исчерпывающий список):

  • модульное тестирование: тестирование одного «модуля», метода изолированно.
  • интеграционное тестирование: тестирование интеграция нескольких модулей (методов, классов, компонентов, слоев)
  • функциональное тестирование:
6
ответ дан 18 November 2019 в 00:35
поделиться
Другие вопросы по тегам:

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