125 Commits

Author SHA1 Message Date
Nick Miyake
3928f579ee Add comments for Equal and NotEqual to clarify pointer comparison
Clarify that pointer equality is determined by equality of values
rather than memory address.

Fixes #358
2016-11-19 23:31:18 -08:00
Alexander Staubo
cbd71e7dd4 When diffing with spew, use a format that doesn't include pointer addresses (which
generate false negatives). This updates go-spew to 04cdfd42973bb9c8589fd6a731800cf222fde1a9.
2016-10-29 16:24:47 -04:00
Russ Egan
4ccf54af99 Clearer messages
- NoError prints the error message on the next line, unquoted, which makes multiline error messages much clearer.  Sample of an error message which includes a multiline stacktrace:

    Error:		Received unexpected error:
			Hi!

			/Volumes/Pouch/Users/russegan/dev/go/src/gitlab.protectv.local/ncryptify/client.git/client_test.go:27 (0x75c8c)
				TestNew: assert.NoError(merry.New("Hi!"), "with message")
			/usr/local/Cellar/go/1.7rc1/libexec/src/testing/testing.go:610 (0x70a01)
				tRunner: fn(t)
			/usr/local/Cellar/go/1.7rc1/libexec/src/runtime/asm_amd64.s:2086 (0x5d131)
				goexit: BYTE	$0x90	// NOP
	Messages:	with message

- Error,NoError,and EqualError now don’t inline the user’s extra messages.  user’s messages are printed in the “Messages:” section, as with all other assertions.
- EqualError now avoids isNil(), mirroring the changes already made to Error and NoError.
- Equal, EqualValues, and EqualError now print the expected and actual values each on a newline, aligned vertically, which makes it easier for a human to visually detect the differences.  Examples:

    Error:		Error message not equal:
            expected: ”no failure"
            recieved: “failure"
    Messages:	with message

    Error:	Not equal:
            "high" (expected)
            "low" (actual)
    Messages:	with message

- EqualValues uses the same value formatting and diff output as Equal for consistency
2016-09-25 11:15:27 -04:00
Ernesto Jiménez
69483b4bd1 Merge pull request #327 from jveski/issue-155
Clarify assert.Equal failure message given mismatched numeric types
2016-09-25 02:54:16 +01:00
Jordan Olshevski
a34cbb254a Use switch statement instead of numericTypes map 2016-09-24 17:19:37 -07:00
Jordan Olshevski
c48fed3351 Use %s instead of %v when printing inequal values
Since the values are already strings, there is no reason to use %v.
2016-09-24 17:17:28 -07:00
Ernesto Jiménez
63b388178e Merge pull request #320 from mhamrle/fix_messages
fix assertion message formatting
2016-09-24 16:14:04 +01:00
Ernesto Jiménez
45bd08b0da Merge pull request #321 from mhamrle/spell
fix typos
2016-09-24 16:06:34 +01:00
Ernesto Jiménez
2f3f464ae5 Merge pull request #338 from nyarly/error_format
Changing format of NoError output to make use of errors
2016-09-24 15:05:22 +01:00
Ernesto Jiménez
c13a3217b3 Merge pull request #344 from mrbroll/diff-data-race
Fix #347 - Diff data race
2016-09-24 14:56:45 +01:00
Michael Broll
f6ca157360 assert: set spew config members in init() to prevent data race detection 2016-09-06 17:16:12 -07:00
Adam Wolfe Gordon
72961116a1 Fix #341
Go 1.7 subtests are called directly from testing.tRunner, not from the
test that contains the t.Run call. Because of this, the call stack
doesn't contain a function starting with Test, Benchmark, or Example,
causing assert.CallerInfo() to run off the end of the call stack and
return nil.

Look for testing.tRunner explicitly to solve this problem, and return
the list of callers if we do run off the call stack so that if there's a
similar problem in the future we still get an inflated stack trace
rather than no trace at all.
2016-09-06 16:06:25 -06:00
Judson
fc28fc9f86
Changing format of NoError output to make use of errors 2016-08-19 11:10:36 -07:00
Jordan Olshevski
3bfb674961 Print types in failed numeric equality assertions
This addresses vague and misleading output when asserting on the
equality of two values of differing numeric types.

Example: assert.Equal(t, int64(123), int32(123))

Previously, the user would have received a vague message claiming that
123 != 123. Now the message will read "int64(123) != int32(123)".
2016-07-06 18:38:55 -07:00
Martin Hamrle
e704e18cb5 fix typos 2016-06-30 19:23:22 +02:00
Martin Hamrle
a55764f5c1 fix assertion message formatting
Fail and HTTPBodyNotContains expected that Fail formats messages.
2016-06-30 19:17:32 +02:00
Ernesto Jiménez
d77da356e5 Fixes #311 - Detect empty interface error gotcha 2016-06-15 11:28:44 +02:00
Ernesto Jiménez
c6b07fe328 Unexport FailNower
failNower is for internal use and we must not export it. Since we just
exported it a couple of days ago is unlikely this breking change will
affect anybody.
2016-01-09 17:58:28 +01:00
Ernesto Jiménez
0f6478d3a8 Fixes #257 - InEpsilon works when actual == 0
Implemented new InEpsilon by calculating the relative error and
comparing it to the expected epsilon rather than calculating the
acceptable margin and using InDelta.

While doing so we got rid of the false failure when the actual value
was zero.
2016-01-09 17:37:37 +01:00
Ernesto Jiménez
3dad6b7b59 Add tests for workaround solution to #263 2016-01-09 02:56:16 +01:00
Ernesto Jiménez
52f8b5b531 Fix #263 - Backwards Incompatible change to TestingT 2016-01-09 02:44:21 +01:00
Ernesto Jiménez
7e30b2ce7a Fixes #261 - Add FailNow back 2016-01-08 12:25:24 +01:00
Ernesto Jiménez
347825ef79 Use Godeps with GO15VENDOREXPERIMENT 2016-01-07 18:08:03 +01:00
Ernesto Jiménez
15b3d4d0fc Merge pull request #249 from stretchr/godep
Vendor dependencies and rewrite import paths
2016-01-07 16:54:51 +01:00
Cyrill Schumacher
cd2b6c1151 Add check for empty time.Time struct (non pointer)
The standard library returns always a non-pointer Time type.
2016-01-07 07:55:48 +01:00
Ernesto Jiménez
d04dca765f Vendor dependencies and rewrite import paths 2015-12-02 20:32:31 +01:00
Blake Wilson
0c260593d1 Edit comments for false assertions 2015-12-02 09:53:45 -06:00
Dennis Coldwell
a3045216a7 found another formatting issue with NotEmpty func 2015-11-20 23:49:31 -08:00
Dennis Coldwell
c94cb5c230 small fix for example formatting on Empty func 2015-11-20 23:35:46 -08:00
Ernesto Jiménez
67106a5111 Sort map keys before diffing maps 2015-11-11 20:37:34 +01:00
Álex González
635a01b704 Show type of the object instead just "Object" string
The `Implements` test was just showing a string instead the name of the
object that was not implementing the interface. Now the type of the
object is shown.
2015-11-08 00:18:55 +01:00
Matt Joiner
7d6ace9113 Handle case where one object is nil and the other is not 2015-11-07 19:02:25 +11:00
Ernesto Jiménez
a76410419d Merge pull request #232 from stretchr/issue-136
Fix #136 - Empty returns true for nil pointers
2015-11-07 04:46:19 +00:00
Ernesto Jiménez
33c4c93911 Fixes #229 - show diffs for structs/maps/arrays/slices when Equal fails 2015-11-03 01:32:38 +00:00
Ernesto Jiménez
c478a808a1 Fix #136 2015-11-02 01:41:59 +00:00
Ernesto Jiménez
8254b8f76b Fix #144 2015-11-02 01:24:09 +00:00
Ernesto Jiménez
a74f1fecd2 Merge pull request #96 from ac7/quote_errors
Wrap NoError message with quote marks
2015-11-01 23:42:15 +00:00
Ernesto Jiménez
40b02b9eef Merge pull request #165 from tuvistavie/master
Support map keys for Contains/NotContains assertion.
2015-11-01 21:02:28 +00:00
Ernesto Jiménez
9a4de4d135 Merge pull request #211 from jaguilar/patch-1
Remove unnecessary branches.
2015-11-01 20:49:18 +00:00
Ernesto Jiménez
a0534acc7b Merge pull request #217 from juliancooper/assert-equivalent-json
Added assertion/requirement that checks if two JSON strings represent equivalent objects
2015-11-01 20:45:50 +00:00
Julian Cooper
2d0c0a478c JSONEq unmarshal's into an interface{} instead of attemping Map and Slice unmarshallings 2015-10-13 14:13:42 -07:00
Bryan Matsuo
fb64a0ab08 Fix NotNil assertion for typed nil values
The NotNil assertion had an error in its handling of typed nil values.
This change makes use of the helper function isNil (used by the Nil
assertion).  The helper function has correct handling of typed nil
values and when negated provides the expected semantics for
`assert.NotNil(t, x)`.

    if x == nil {
        assert.Fail(t, "is nil", x)
    }
2015-09-23 23:48:02 -07:00
Julian Cooper
930ea90dbd Added assertion/requirement that checks if two JSON strings represent equivalent objects 2015-09-23 10:34:52 -07:00
James Aguilar
1cb1359759 Remove unnecessary branches.
reflect.DeepEqual already returns exactly what we want in both of these cases.
2015-08-28 18:56:01 -07:00
Jonathan Camenisch
5d8c1da624 Fix param order in ObjectsAreEqualValues after type conversion 2015-08-27 23:37:31 -04:00
Daniel Chatfield
69ff3e840b Fix order of params in Equal 2015-08-27 16:56:39 +01:00
Ernesto Jiménez
acfa84d454 Merge pull request #190 from davelondon/patch-1
Update assertions.go
2015-08-26 19:36:54 +01:00
Davide D'Agostino
9de108a472 Merge pull request #203 from willfaught/master
Add Zero and NotZero assertions and requirements
2015-08-26 11:35:18 -07:00
Siva Gollapalli
b60ec447d6 Modified the error message for NotEqual 2015-08-26 19:40:56 +05:30
Siva Gollapalli
80b247df3c Display actual and expected values on NotEqual 2015-08-26 19:31:23 +05:30