Scalatest matchers for Json with appropriate equality and descriptive error messages.
Add the dependency you want
libraryDependencies += "com.stephenn" %% "scalatest-json-jsonassert" % "0.0.4"
libraryDependencies += "com.stephenn" %% "scalatest-json4s" % "0.0.3"
libraryDependencies += "com.stephenn" %% "scalatest-play-json" % "0.0.1"
libraryDependencies += "com.stephenn" %% "scalatest-circe" % "0.0.1"
Your scalatest spec should extend or import JsonMatchers
class ExampleSpec extends FunSpec with Matchers with JsonMatchers {
describe("JsonMatchers usage") {
it("should pass matching json with different spacing and order") {
val input = """
|{
| "some": "valid json",
| "with": ["json", "content"]
|}
""".stripMargin
val expected = """
|{
| "with": ["json", "content"],
| "some": "valid json"
|}
""".stripMargin
input should matchJson(expected)
}
it("should fail on slightly different json explaining why") {
val input = """
|{
| "someField": "valid json"
|}
""".stripMargin
val expected = """
|{
| "someField": "different json"
|}
""".stripMargin
input should matchJson(expected)
//
// Fails
//
// Json did not match {
// "someField": "valid json"
// } did not match {
// "someField": "different json"
// }
//
// Json Diff:
// someField
// Expected: different json
// got: valid json
}
}
}
- bump version in module to non snaphsot
- commit and tag
git tag json4s-0.0.1
git push --tags
- sbt +json4s/publishSigned
- sbt sonatypeReleaseAll
- bump version to snapshot