Reference: Testing: Power Assert

Installation (Gradle)#

dependencies {
    
    implementation(platform("org.http4k:http4k-bom:6.45.1.0"))

    implementation("org.http4k:http4k-testing-powerassert")
}

About#

A set of Power Assert matchers for use when testing http4k apps.

Code#

Kotlin example.kt
package content.ecosystem.http4k.reference.powerassert

import org.http4k.core.Method.POST
import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status.Companion.OK
import org.http4k.powerassert.hasBody
import org.http4k.powerassert.hasHeader
import org.http4k.powerassert.hasQuery
import org.http4k.powerassert.hasStatus
import org.junit.jupiter.api.Test

class ExampleTest {

    @Test
    fun `example matchers`() {

        val request = Request(POST, "/?a=b").body("http4k is cool").header("my header", "a value")

        // status
        assert(Response(OK).hasStatus(OK))

        // query
        assert(request.hasQuery("a", "b"))

        // header
        assert(request.hasHeader("my header", "a value"))

        // body
        assert(request.hasBody("http4k is cool"))

        // composite
        assert(request.hasBody("http4k is cool"))
    }
}
scarf