2016-12-27 6 views
0

Я относительно новичок в Fitnesse. То, что я сейчас пытаюсь сделать, это посмотреть на Fitnesse для моего нового проекта и попытаться изучить, является ли это подходящим инструментом для моих приемочных испытаний.Fitnesse in spring boot test

Проект, над которым я работаю, по сути является проектом микросервисов, в котором у меня будет несколько микронасосов с пружинной загрузкой, и в идеале я бы хотел, чтобы мои приемочные тесты вызывали остальные контроллеры напрямую (через отдых) в некоторых случаях, а в других - весенние службы напрямую.

Я провел много исследований в Интернете, но я не смог четко определить, как я смогу достичь этого, используя Fitnesse.

Я использую maven для создания своих проектов и намерен использовать jenkins в качестве инструмента CI. Могу ли я использовать его с помощью springboottest, например, с огурцом?

Любые предложения?

+0

Похоже, что они имеют встроенные аннотации для тестирования модулей, но то, что вы хотели бы использовать с фитнеса, - это запустить среду сервлетов «test/mock», а затем получить доступ к ней из фитнеса java fixture, а не из единичный метод испытаний. Возможно, вы сможете отметить приспособление для фитнеса с аннотацией «@IntegrationTest» для достижения этого эффекта, а затем просто не использовать методы @Test, но я не уверен. https://blog.jayway.com/2014/07/04/integration-testing-a-spring-boot-application/ –

+0

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

ответ

0

FitNesse само по себе является испытательной средой, с ее собственной силой и слабостями, как упомянуто в некоторых комментариях. Из коробки он не имеет возможности тестировать приложение. Он позволяет писать определения тестов и выполнять их. Чтобы подключить определения тестов к фактической проверенной системе (SUT, тестируемая система), вам нужен какой-то код (называемый fixtures). Они могут быть написаны на Java (или на каком-либо другом языке, поддерживаемом FitNesse). Эти приборы будут взаимодействовать с тестируемой системой и определять элементы, из которых будут состоять ваши тестовые определения. (Все это с моей точки зрения похоже на Cucumber и его определения шага)

Вы можете написать свои собственные (пользовательские) светильники или использовать некоторые существующие «плагины» или использовать fixture libraries that already exist. Если вы используете существующую библиотеку, вам может понадобиться/нужно использовать некоторые настраиваемые светильники, основываясь на предоставляемых ими функциях.

Запуск тестов может проводиться в среде Jenkins, либо с использованием тестового бегуна jUnit, входящего в состав FitNesse, либо через специализированный плагин Jenkins. Так что это соответствует вашим требованиям, никаких проблем.

Я не знаю springboottest или каких-либо специализированных приспособлений для работы с приложением Spring Boot. Но несколько библиотек устройств поддерживают тестирование служб REST (например, RestFixture или HSAC's FitNesse fixtures (раскрытие: я написал много кода в этой библиотеке)) или веб-приложения, созданные поверх них.

Я использую HSAC's FitNesse fixtures для тестирования веб-приложений и служб REST (и SOAP), используя Maven в Jenkins. Для меня это дает хорошую базовую установку FitNesse, которая позволяет мне сосредоточиться на написании тестов, а не на проверке сантехники. Возможно, вы можете взглянуть на documentation of its REST fixture (http test and json http test) или download and try the examples на свой пакет «standalone zip», чтобы узнать, позволяет ли он выразить ваши тесты таким образом, который вам подходит (и ваш проект). Запуск тестов через Jenkins предварительно сконфигурирован в проектах pom.xml и задокументирован в its README.