Английская Википедия:Concordion
Шаблон:Short description Шаблон:Distinguish Шаблон:Infobox software
Concordion is a specification by example framework originally developed by David Peterson,[1] and now maintained by a team of contributors,[2] led by Nigel Charman.
Inspired by the Fit Framework, David states the following aims were behind Concordion:[3]
- Improved readability of documents
- More "opinionated" (scripting is actively discouraged)
- Easier to use
How it works
Concordion specifications are written in Markdown, HTML or Excel[4] and then instrumented with special links, attributes or comments respectively. When the corresponding test fixture class is run, Concordion interprets the instrumentation to execute the test. Rather than forcing product owners to specify requirements in a specially structured language, Concordion lets you write them in normal language using paragraphs, tables and proper punctuation. This makes the specifications much more natural to read and write, and helps everyone to understand and agree about what a feature is supposed to do.[5]
The Markdown, HTML or Excel files are typically stored with the source code, which has the benefit that they can be under the same version control system as the rest of the code ensuring the specification and tests are branched and merged along with the main source code.
Concordion includes a flexible extension mechanism[6] for adding functionality, for example implementing new commands, listening to events, or modifying the output documentation. By providing functionality such as embedding screenshots,[7] storyboards[8] or logging output,[9] extensions provide confidence in what the test is doing without locking the test into a specific implementation.[10]
Concordion enriches agile processes[11] and has been successfully applied in industrial context.[12]
Example
Markdown format specification
Before instrumentation |
The greeting for World is Hello World! |
---|---|
After instrumentation | The greeting for [World](- "#name") is [Hello World!](- "?=greetingFor(#name)")
|
HTML format specification
Before instrumentation | <html>
<body>
<p>The greeting for <b>World</b> is <b>Hello World!</b></p>
</body>
</html>
|
---|---|
After instrumentation | <html xmlns:concordion="http://www.concordion.org/2007/concordion">
<body>
<p>The greeting for <b concordion:set="#name">World</b> is
<b concordion:assertEquals="greetingFor(#name)">Hello World!</b>
</p>
</body>
</html>
|
The fixture code
- HelloWorldTest.java
- The fixture that works with the instrumentation
package org.wikipedia;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class HelloWorldTest {
public String greetingFor(String firstName) {
return "Hello " + firstName + "!";
}
}
Integrated Development Environment Support
The Concordion Support plugin for the IntelliJ IDEA Integrated development environment (IDE) simplifies development of fixtures and specifications with features including autocompletion, navigation between spec and test fixture, renaming, running tests, inspections and quick fixes.[13]
The Eclipse (software) Concordion plugin is much more limited and hasn't been updated since 2011.[14] The original author has stopped using Concordion and Eclipse and is unable to accommodate the necessary time to extend and maintain the plugin.[15]
Ports
Concordion has been ported to other languages including:
References
External links
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web.
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite conference Шаблон:Webarchive
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- Английская Википедия
- Programming languages
- Free software programmed in Java (programming language)
- Free software testing tools
- Software using the Apache license
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Английской Википедии