Documentation
¶
Overview ¶
Package assertjson implements JSON equality assertion for tests.
Example ¶
package main
import (
"fmt"
"github.com/swaggest/assertjson"
)
var t = testingT(func(format string, args ...interface{}) {
fmt.Printf(format, args...)
})
func main() {
assertjson.Equal(t,
[]byte(`{"a": [1, {"val": "<ignore-diff>"}, 3], "b": 2, "c": 3}`),
[]byte(`{"a": [1, {"val": 123}, 3], "c": 2, "b": 3}`),
)
}
Output: Error Trace: equal.go:88 equal.go:63 example_test.go:14 Error: Not equal: { "a": [ 1, { "val": "<ignore-diff>" }, 3 ], - "b": 2, + "b": 3, - "c": 3 + "c": 2 }
Index ¶
- Constants
- func Equal(t TestingT, expected, actual []byte, msgAndArgs ...interface{}) bool
- func EqualMarshal(t TestingT, expected []byte, actualValue interface{}, ...) bool
- func FailNotEqual(expected, actual []byte) error
- func FailNotEqualMarshal(expected []byte, actualValue interface{}) error
- func MarshalIndentCompact(v interface{}, prefix, indent string, lineLen int) ([]byte, error)
- type Comparer
- func (c Comparer) Equal(t TestingT, expected, actual []byte, msgAndArgs ...interface{}) bool
- func (c Comparer) EqualMarshal(t TestingT, expected []byte, actualValue interface{}, ...) bool
- func (c Comparer) FailNotEqual(expected, actual []byte) error
- func (c Comparer) FailNotEqualMarshal(expected []byte, actualValue interface{}) error
- type TestingT
Examples ¶
Constants ¶
const IgnoreDiff = "<ignore-diff>"
IgnoreDiff is a marker to ignore difference in JSON.
Variables ¶
This section is empty.
Functions ¶
func EqualMarshal ¶ added in v1.4.0
func EqualMarshal(t TestingT, expected []byte, actualValue interface{}, msgAndArgs ...interface{}) bool
EqualMarshal marshals actual value and compares two JSON documents ignoring string values "<ignore-diff>".
func FailNotEqual ¶ added in v1.1.0
FailNotEqual returns error if JSON payloads are different, nil otherwise.
func FailNotEqualMarshal ¶ added in v1.7.0
FailNotEqualMarshal returns error if expected JSON payload is not equal to marshaled actual value.
func MarshalIndentCompact ¶ added in v1.2.0
MarshalIndentCompact applies indentation for large chunks of JSON and uses compact format for smaller ones.
Line length limits indented width of JSON structure, does not apply to long distinct scalars. This function is not optimized for performance, so it might be not a good fit for high load scenarios.
Types ¶
type Comparer ¶
type Comparer struct {
// IgnoreDiff is a value in expected document to ignore difference with actual document.
IgnoreDiff string
// Vars keeps state of found variables.
Vars *shared.Vars
// FormatterConfig controls diff formatter configuration.
FormatterConfig formatter.AsciiFormatterConfig
// KeepFullDiff shows full diff in error message.
KeepFullDiff bool
// FullDiffMaxLines is a maximum number of lines to show without reductions, default 50.
// Ignored if KeepFullDiff is true.
FullDiffMaxLines int
// DiffSurroundingLines is a number of lines to add before and after diff line, default 5.
// Ignored if KeepFullDiff is true.
DiffSurroundingLines int
}
Comparer compares JSON documents.
func (Comparer) EqualMarshal ¶ added in v1.4.0
func (c Comparer) EqualMarshal(t TestingT, expected []byte, actualValue interface{}, msgAndArgs ...interface{}) bool
EqualMarshal marshals actual JSON payload and compares it with expected payload.
func (Comparer) FailNotEqual ¶ added in v1.1.0
FailNotEqual returns error if JSON payloads are different, nil otherwise.
func (Comparer) FailNotEqualMarshal ¶ added in v1.7.0
FailNotEqualMarshal returns error if expected JSON payload is not equal to marshaled actual value.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
jsoncompact
command
|
|
|
Package json5 provides JSON5 decoder.
|
Package json5 provides JSON5 decoder. |