Exam BDD Framework >

Before each example
content_types
data_xmldata_jsondata_json_with_extra_fields
<some> <ts>2024-08-24T16:42:28.883</ts> </some>
{
  "id": "a",
  "code": 1
}
{
  "id": "a",
  "code": 1,
  "extra": "ignore"
}
<some> <data>any</data> </some>
{
  "id": "b",
  "code": 2
}
{
  "id": "b",
  "code": 2,
  "extra": "ignore"
}
Check content types
.content_types
[cols="1a,1a,1a", {db-check}, {db-orderBy}id]
|===
|data_json |data_json_with_extra_fields |data_xml

|[source,json]
----
{ "id": "a", "code": 1 }
----
|[source,json]
----
{ "id": "a", "code": 1 }
----
|[source,xml]
----
<some> <ts>{{iso (at)}}</ts> </some>
----

|[source,json]
----
{ "id": "{{string}}", "code": 2 }
----
|[source,json]
----
{ "id": "b", "code": "{{number}}" }
----
|[source,xml]
----
<some> <data>{{ignore}}</data> </some>
----
|===

Example 1. Check content types

content_types
data_jsondata_json_with_extra_fieldsdata_xml
{
  "id": "a",
  "code": 1
}
{
  "id": "a",
  "code": 1,
  "extra": "ignore"
}
<some> <ts>2024-08-24T16:42:28.883</ts> </some>
{
  "id": "b",
  "code": 2
}
{
  "id": "b",
  "code": 2,
  "extra": "ignore"
}
<some> <data>any</data> </some>
Log File

!Example 2. Failures

Example 2. FailuresExpectedToFail
table content mismatch:
"data_json" in row 1: Actual value='{
  "id": "a",
  "code": 1
}' is not equal to expected value='{ "id": "${test-unit.any-number}", "code": 1 }' because:
JSON documents are different:
Different value found in node "id", expected: <a number> but was: <"a">.

"data_xml" in row 2: Actual value='<some>
  <data>any</data>
</some>' is not equal to expected value='<some> <data>${test-unit.any-number}</data> </some>' because:
Expected text value '${xml-unit.any-number}' but was 'any' - comparing <data ...>${xml-unit.any-number}</data> at /some[1]/data[1]/text()[1] to <data ...>any</data> at /some[1]/data[1]/text()[1]
Expected:
content_types
data_jsondata_xml
{ "id": "${test-unit.any-number}", "code": 1 }{ "id": "a", "code": 1 }<some> <ts>2024-08-24T16:42:28.883</ts> </some>
{
  "id": "b",
  "code": 2
}
<some> <data>${test-unit.any-number}</data> </some><some> <data>any</data> </some>