This PR adds a new function into the assert package, JSONEqBytes, that does the same as JSONEq, but by receiving []byte values as parameter instead of string ones.
Changes
assert/assertions.go:
The implementation of JSONEqBytes is pretty much what was in JSONEq, but having it receive []byte values and then not needing to convert these values to []byte when calling json.Unmarshal inside it.
Then, the implementation of JSONEq was changed such that it just calls JSONEqBytes by converting its original arguments to []byte values (which it already did when calling json.Unmarshal)
assert/assertions_test.go:
Tests for JSONEqBytes function were replicated from the tests from JSONEq.
Motivation
It is common in Go to store JSON text in []byte variables instead of string values, so having a function that allows to receive these values when doing JSON-equality checks without having to cast them to string can be useful.
Maybe not as important, it would also avoid unnecessary []byte-to-string conversions, which could add up when dealing with big JSON payloads.
Hi !
this one is great but I think currently maintainers are more focused in fixing bugs rather than expanding the API interface.
Let's wait their response
Summary
This PR adds a new function into the
assert
package,JSONEqBytes
, that does the same asJSONEq
, but by receiving[]byte
values as parameter instead ofstring
ones.Changes
assert/assertions.go
: The implementation ofJSONEqBytes
is pretty much what was inJSONEq
, but having it receive[]byte
values and then not needing to convert these values to[]byte
when callingjson.Unmarshal
inside it.Then, the implementation of
JSONEq
was changed such that it just callsJSONEqBytes
by converting its original arguments to[]byte
values (which it already did when callingjson.Unmarshal
)assert/assertions_test.go
: Tests forJSONEqBytes
function were replicated from the tests fromJSONEq
.Motivation
It is common in Go to store JSON text in
[]byte
variables instead ofstring
values, so having a function that allows to receive these values when doing JSON-equality checks without having to cast them to string can be useful.Maybe not as important, it would also avoid unnecessary
[]byte
-to-string
conversions, which could add up when dealing with big JSON payloads.Example of usage: