Skip to content

dmcg/konsent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Konsent

An acceptance testing library for Kotlin.

KonsentExampleTests shows how to write a test.

@RunWith(Konsent::class)
@Preamble(
    "As a developer named Duncan",
    "I want to know that example.com is up and running")
class KonsentExampleTests : ChromeAcceptanceTest() {

    val duncan = actorNamed("Duncan")

    @Scenario(1) fun `Example_dot_com loads`() {
        Given(duncan).loadsThePageAt("http:https://example.com")
        Then(duncan) {
            shouldSee(thePageLocation, pathContains("example.com"))
            shouldSee(thePageTitle, equalTo("Example Domain"))
            shouldSee(thePageContent, containsALink("More information...", "http:https://www.iana.org/domains/example"))
        }
    }

    @Scenario(2, "Following a link from example.com") fun cant_have_dots_in_quoted_method_names() {
        Given(duncan).loadsThePageAt("http:https://example.com")
        When(duncan).followsTheLink("More information...", "http:https://www.iana.org/domains/example")
        Then(duncan).shouldSee(thePageLocation, equalTo(URI("http:https://www.iana.org/domains/reserved")))
    }

    @Scenario(3) fun `Dispensing with the given when then`() {
        duncan.he.loadsThePageAt("http:https://example.com")
        duncan.he.followsTheLink("More information...", "http:https://www.iana.org/domains/example")
        duncan.he.shouldSee(thePageLocation, equalTo(URI("http:https://www.iana.org/domains/reserved")))
    }
}

This writes an approved file

Feature: Konsent Example Tests
    As a developer named Duncan
    I want to know that example.com is up and running

    Scenario: Example_dot_com loads
        Given Duncan loads the page at "http:https://example.com"
        Then he sees the page location "location contains "example.com"
        and the page title is equal to "Example Domain"
        and the page content contains a link [More information...](http:https://www.iana.org/domains/example)

    Scenario: Following a link from example.com
        Given Duncan loads the page at "http:https://example.com"
        When he follows the link [More information...](http:https://www.iana.org/domains/example)
        Then he sees the page location is equal to http:https://www.iana.org/domains/reserved

    Scenario: Dispensing with the given when then
        Duncan loads the page at "http:https://example.com"
        he follows the link [More information...](http:https://www.iana.org/domains/example)
        he sees the page location is equal to http:https://www.iana.org/domains/reserved

Konsent is available at Maven central.