konkordeon
Oryginalni autorzy | Davida Petersona |
---|---|
Deweloperzy | Nigela Charmana i in. |
Wersja stabilna | 3.0.1 / 4 lipca 2020 r
|
Magazyn | |
Napisane w | Java , .NET |
System operacyjny | Międzyplatformowe |
Typ | Specyfikacja za pomocą przykładowego narzędzia |
Licencja | Licencja Apache 2.0 |
Strona internetowa |
|
Concordion to specyfikacja oparta na przykładach , pierwotnie opracowana przez Davida Petersona, a obecnie utrzymywana przez zespół współpracowników, kierowany przez Nigela Charmana.
Zainspirowany Fit Framework , David stwierdza, że Concordion miał następujące cele:
- Poprawiona czytelność dokumentów
- Bardziej „opiniowane” (odradza się pisanie skryptów)
- Łatwiejszy w użyciu
Jak to działa
Specyfikacje Concordion są zapisywane w Markdown, HTML lub Excel, a następnie odpowiednio oprzyrządowane specjalnymi łączami, atrybutami lub komentarzami. Po uruchomieniu odpowiedniej klasy przyrządu testowego Concordion interpretuje oprzyrządowanie w celu wykonania testu. Zamiast zmuszać właścicieli produktów do określania wymagań w specjalnie ustrukturyzowanym języku, Concordion umożliwia pisanie ich normalnym językiem przy użyciu akapitów, tabel i odpowiedniej interpunkcji. Dzięki temu specyfikacje są o wiele bardziej naturalne do czytania i pisania oraz pomagają wszystkim zrozumieć i uzgodnić, co funkcja ma robić.
Pliki Markdown, HTML lub Excel są zwykle przechowywane z kodem źródłowym, co ma tę zaletę, że mogą znajdować się w tym samym systemie kontroli wersji, co reszta kodu, zapewniając rozgałęzienie i połączenie specyfikacji i testów wraz z głównym kodem źródłowym .
Concordion zawiera elastyczny mechanizm rozszerzający o dodawanie funkcjonalności, na przykład wdrażanie nowych poleceń, nasłuchiwanie zdarzeń lub modyfikowanie dokumentacji wyjściowej. Zapewniając funkcjonalność, taką jak osadzanie zrzutów ekranu, scenorysów lub rejestrowanie danych wyjściowych, rozszerzenia zapewniają pewność co do tego, co robi test, bez blokowania testu w określonej implementacji.
Concordion wzbogaca procesy zwinne i został z powodzeniem zastosowany w kontekście przemysłowym.
Przykład
Specyfikacja formatu Markdown
Przed oprzyrządowaniem |
Powitanie dla świata to Hello World! |
---|---|
Po oprzyrządowaniu |
Powitanie dla [ World ]( - "#name" ) to [ Hello World! ]( - "?=pozdrowieniaDla(#imię )") |
Specyfikacja formatu HTML
Przed oprzyrządowaniem |
< html > < body > < p > Pozdrowienie dla < b > świata </ b > to < b > Witaj, świecie! </ b ></ p > </ treść > </ html >
|
---|---|
Po oprzyrządowaniu |
< html xmlns:concordion = "http://www.concordion.org/2007/concordion" > < body > < p > Pozdrowienie dla < b concordion:set = "#name" > Świat </ b > to < b concordion:assertEquals = "greetingFor(#name)" > Witaj, świecie! </ b > </ p > </ treść > </ html >
|
Kod urządzenia
- HelloWorldTest.java
- Urządzenie współpracujące z oprzyrządowaniem
pakiet org.wikipedia ; import org.concordion.integration.junit4.ConcordionRunner ; import org.junit.runner.RunWith ; @RunWith ( ConcordionRunner . class ) public class HelloWorldTest { public String pozdrowienia dla ( String firstName ) { return "Cześć" + imię + "!" ; } }
Zintegrowane wsparcie środowiska programistycznego
Wtyczka Concordion Support dla zintegrowanego środowiska programistycznego (IDE) IntelliJ IDEA upraszcza tworzenie urządzeń i specyfikacji dzięki funkcjom obejmującym autouzupełnianie, nawigację między specyfikacjami i urządzeniami testowymi, zmianę nazwy, przeprowadzanie testów, inspekcje i szybkie poprawki.
Wtyczka Concordion (oprogramowanie) Eclipse jest znacznie bardziej ograniczona i nie była aktualizowana od 2011 roku. Oryginalny autor przestał używać Concordion i Eclipse i nie jest w stanie poświęcić czasu na rozszerzenie i utrzymanie wtyczki.
Porty
Concordion został przeniesiony na inne języki, w tym:
- C# ( Concordion.NET )
- Python ( PyConcordion )
- Ruby ( Ruby-Concordion )
Linki zewnętrzne
- Oficjalna strona internetowa
- David Peterson: Concordion 1.3.1 w Wayback Machine (archiwum 2017-08-31)
- konkordeon na GitHubie
- concordion.net na GitHubie