Commit Graph

372 Commits (fix-1292-dep-cycle-with-objx)

Author SHA1 Message Date
timfeirg 2a15e200fd support diff display for string variables 2018-06-09 11:55:26 +01:00
Cory Bennett c679ae2cc0 add function aliases for common assert and requires function signatures to make table driven tests easier 2018-03-19 22:34:59 +00:00
Dinesh Kumar 6efb0c49fb Adding url.Values to request RawQuery, fixes 522 2018-03-18 18:57:06 +00:00
Ernesto Jiménez a726187e31 Fix vim-go integration and other editors
Use Go 1.9 t.Helper() to remove testify from the output of the tests and
stop using `\r` to try to overwrite the output.

This means in Go 1.7 and Go 1.8 testify will appear as failing the test.
2018-02-02 18:39:40 +00:00
Ernesto Jiménez 12b6f73e60 Docs: Remove superfluous parenthesis
As per https://github.com/stretchr/testify/pull/549 from @larsxschneider
2018-01-31 22:38:42 +00:00
Jonathan Jin 85c790041a Correct typo in assert.InDeltaMapValues
s/numbe/number
2018-01-31 22:35:36 +00:00
Ernesto Jiménez 87b1dfb5b2 Remove returns info from assertion docs
Fixes #525

Return information was propagated to the docs from other wrapper
functions which return nothing.
2017-12-31 13:42:24 +01:00
Ernesto Jiménez 8de2544b9a Fix HTTP assertions to be consistent with the rest
HTTP assertions were missing the trailing `msgAndArgs ...interface{}`,
making it inconsistent with the rest of the assertions and resulting in
incorrect `*f` wrappers.

Fixes #528
2017-12-30 18:45:31 +01:00
Ernesto Jiménez b57b6d191c Add FileExists and DirExists assertions
Implement FileExists and DirExists assertions to check whether file/dir
exist in a given path.

Closes #428
2017-12-30 18:26:00 +01:00
Adam Medzinski 42baa3e5a4 Nil check in Implements assertion 2017-12-30 17:32:04 +01:00
Eyal b3dfaa9086 fail: add test name for logged output
In case of a test failure, the test name will be logged to the output
with makes debugging easier, specially in case of table driven tests.
2017-12-30 17:26:20 +01:00
Emil Stanchev 51464dae67 Consider empty/nil arrays as matching elements 2017-12-30 16:33:25 +01:00
Emil Stanchev 6f306a68e1 Reuse aLen and bLen variables 2017-12-30 16:33:25 +01:00
Emil Stanchev 76de30ed82 Actually fail tests 2017-12-30 16:33:25 +01:00
Emil Stanchev ae87ba6d08 Ran go generate 2017-12-30 16:33:25 +01:00
Emil Stanchev 8bd27ddf8b Compress some newlines 2017-12-30 16:33:25 +01:00
Emil Stanchev bf57a5dedc ElementsMatch array/slice assertion ignoring order
An assertion that compares the elements of the slices/arrays disregarding the order,
i.e. it checks whether each element in the first slice/array appears the same number of times in it
as in the second slice/array.

This name seemed like it would be easy to find.

Possible alternatives for the name:
- ContainsSameElements
- IsPermutation (C++: http://en.cppreference.com/w/cpp/algorithm/is_permutation)
- MatchArray (rspec: http://www.rubydoc.info/github/rspec/rspec-expectations/RSpec/Matchers:match_array)
- EqualSorted
- Other ideas?

This implementaiton is O(N^2), while sorting both lists first would be O(nlogn).
However, this one doesn't need to copy the lists, so it is simpler and doesn't require additional
memory and time for the copies.

I realize this was deemed as out of scope
https://github.com/stretchr/testify/issues/275
but I decided to give it a shot as I needed it also.
2017-12-30 16:33:25 +01:00
Tim Schaub 0c49dd9bb7 Replace is with in
Minor doc typo.
2017-12-30 16:16:00 +01:00
Emil Stanchev 9fb9de17de Make NotSubset actually fail the test on nil subset
The assertion function was simply returning false, which doesn't actually fail a test.
An example test that should have failed but doesn't:

  func TestNotSubset(t *testing.T) {
      assert.NotSubset(t, []string{"x"}, nil)
  }
2017-12-30 16:07:04 +01:00
odog c0f1d443b4 indent actual value for better comparison with expected value 2017-12-30 14:43:45 +01:00
Jonathan Jin 249123e03a Implement delta comparison for map values 2017-12-30 14:26:37 +01:00
Vincent Cote-Roy 88a414d072 generalize Empty assertion
Make `Empty` work against any struct and custom types, by replacing
explicit zero value comparisons with a `DeepEqual` comparison with
the type's `reflect.ZeroValue`.
2017-12-30 13:03:09 +01:00
Dragos Harabor 890a5c3458 Issue #469 fix
reflect.Value.Len() can cover more types, per godoc:
> Len returns v's length. It panics if v's Kind is not Array, Chan, Map, Slice, or String.
2017-08-09 15:42:52 -07:00
Joshua T Corbin 05e8a0eda3 Fix the actuality of InEpsilon 2017-07-14 14:53:25 -07:00
Joshua T Corbin 2f1cd6b778 time.Duraions are numbers too 2017-07-14 14:27:08 -07:00
Joshua T Corbin b1f989447a Fix InDelta expected nan check message 2017-07-14 11:20:46 -07:00
Joshua T Corbin 4b92304da8 Fix actual float conversion error message under calcRelativeError 2017-07-14 11:13:59 -07:00
Tom Artale f6abca5936 Added assert.PanicsWithValue + tests 2017-06-01 22:03:22 +01:00
Adam Medzinski 46b3c8225b Simple validation of Equal/NotEqual assertion arguments 2017-05-29 17:57:31 +01:00
Ernesto Jiménez c7668ea997 Fixes #339 - Add `assertion`f assertions like Errorf and Equalf 2017-05-29 12:56:43 +01:00
Ernesto Jiménez c33f336b92 Fix vet warnings and go generate to update docs 2017-05-29 12:56:43 +01:00
Ernesto Jiménez 253219d8d4 Merge pull request #396 from medzin/issue-379
HTTP code status assertions now fail tests
2017-05-28 13:28:02 +01:00
Ernesto Jiménez edd8e19ece Run go generate to syn generated assertions 2017-05-28 12:30:45 +01:00
Adam Medziński 78be756ee7 Fixed HTTP assertions messages formatting and removed wrong test message 2017-05-28 13:23:04 +02:00
decauwsemaecker.glen@gmail.com 3a59a58abc
add Subset and NotSubset assertions 2017-05-27 17:24:18 -05:00
Terin Stock b6296e3859 fix(docs): correct Error usage examples
Correct the usage of `assert.Equal` in the Error and NoError usage
examples, which had reversed the expected and actual arguments.
2017-05-25 17:42:54 -07:00
Tedde Lundgren d2f3716b44 Add msgAndArgs pass forward to InDelta from InDeltaSlice 2017-05-25 17:40:33 -07:00
Peter Ebden 158f9d0389 Check that there is a directory before trying to access it. 2017-05-25 17:40:15 -07:00
Cameron Moore 09f61d78b8 assert: fix error reporting when error contains escape sequences
Fixes #325
2017-05-25 17:28:59 -07:00
havnesvo bc11a6e4dd Tighten language by increasing overall consistency in wording in texts and argument names: use 'actual' instead of 'received' 2017-05-25 17:16:55 -07:00
Denys Smirnov 97c0e43cd5 compare bytes with bytes.Equal instead of reflect.DeepEqual 2017-05-25 17:04:05 -07:00
Adam Medziński 5c9da494dd HTTP code status assertions now fail tests 2017-02-10 14:36:52 +01:00
Ernesto Jiménez 332ae0e18f Add Equal test comparing nil with non-nil 2017-01-30 11:25:29 +00:00
Ernesto Jiménez 2402e8e7a0 Merge pull request #364 from nmiyake/fixFailOutput
Ensure that assert.Fail properly align its output
2016-12-17 14:04:45 -06:00
Ernesto Jiménez ae4c58e530 Merge pull request #367 from packrat386/rm_numeric_check
Remove isNumericType check
2016-12-17 13:26:48 -06:00
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
Aidan Coyle 6835870125 Remove isNumericType check
I'm not sure why this check is needed. It seems worthwhile to print the
type any time the types aren't equal. Closes #366.
2016-11-17 10:29:04 -06: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
Nick Miyake ddb91ee140 Ensure that assert.Fail properly align its output
Previous implementation depended on tab alignment. This worked
when the output was not prepended with anything, but would break
if the output was prepended with further spaces (which can occur
in environments like IntelliJ test runners). This commit fixes it
so that the output is always aligned logically.

Fixes #83
2016-10-28 19:36:52 -07:00
Ernesto Jiménez 976c720a22 Format generated code 2016-09-25 23:06:09 +01: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 d2b5f58808 Add formatUnequalValues struct test coverage
This expands the TestFormatUnequalValues test case to cover the behavior
of the function when provided two struct type'd values.
2016-09-24 17:22:54 -07: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
Michael Broll 3656ffd69b write test to simulate parallel execution of diff() 2016-09-06 17:15:19 -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 5eeedba61e Fix docs for forwarded assertions 2016-01-07 18:25:18 +01:00
Ernesto Jiménez 347825ef79 Use Godeps with GO15VENDOREXPERIMENT 2016-01-07 18:08:03 +01:00
Ernesto Jiménez 1f703b6d97 Merge branch 'master' into codegen 2016-01-07 17:45:04 +01:00
Ernesto Jiménez 004b24af5b Merge branch 'master' into codegen 2016-01-07 16:58:05 +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 efd1b850c1 First version of code generation 2015-11-05 23:08:36 +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
Julian Cooper 7f6cb13c5c split JSONEq tests into individual assertions from one monolithic test 2015-10-13 13:36:47 -07:00
Bryan Matsuo ee60e76e54 Test Nil assertion behavior for typed nil values 2015-09-24 10:02:27 -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
Davide D'Agostino 68c12689a5 Merge pull request #196 from phemmer/remove-overview
remove overview sections from documentation
2015-08-26 11:20:00 -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
Siva Gollapalli 05776ad541 EqualError error output swaps the actual and expected values 2015-08-25 20:49:33 +05:30
Will Faught 8512261d41 Add Zero and NotZero assertions and requirements
Zero returns true if the value equals the value's type's zero value.

NotZero returns the opposite of Zero.
2015-08-24 15:53:36 -07:00
Mawueli Kofi Adzoe 9c13092f45 Fix tiny typo 2015-08-12 11:24:55 +00:00
Griffin Smith 81bd467d7c Use "method" rather than "mode" for http tests
Use `method` (this is what http.NewRequest and the HTTP standard in
general calls this) rather than `mode` for `"GET"`, `"POST"`, etc.
2015-08-06 17:14:15 -04:00
Patrick Hemmer 74bbd89240 remove overview sections from documentation 2015-07-22 15:56:30 -04:00
davelondon 6b09f60392 Update assertions.go
Fixed incorrect order of parameters to Equal
2015-07-05 10:37:27 -04:00
Connor Peet 6756bdecf4 Adjust NotNil error message 2015-06-21 07:39:50 +10:00
Ernesto Jiménez ddcad49ec6 Fix typo in test function name 2015-06-15 21:31:24 +01:00
Ernesto Jiménez abc938a12b Add test to avoid regression of issue #180 2015-06-14 19:29:18 +01:00
Andrew Burns c769e40e8b Handle `<autogenerated>` files in `CallerInfo()`
Fixes #180
2015-06-11 14:33:49 -06:00
Paul Bellamy c0b6c3bbd7 Rename Location to Error Trace in failure output 2015-06-05 14:01:19 +01:00
Paul Bellamy 0fd7b57c23 rename assert.locationInfo -> assert.errorTrace 2015-06-05 10:14:07 +01:00
Paul Bellamy 925c3ad43b Reverse the stacktrace on assertion output (to match panic) 2015-06-05 10:13:41 +01:00
Paul Bellamy a7a0af787a Add a basic stacktrace to the assertion output 2015-06-04 14:00:35 +01:00
Daniel Perez 1e710e53ab Support map keys for Contains/NotContains assertion. 2015-05-13 16:07:31 +09:00
Michael R. Maletich 4e2053a4af Address #162: InDelta should fail when actual value is not a number.
Comparting a float with NaN is always false so the assertion would always pass.
Added a check that either the actual or expected values are NaN.

InDelta will now fail if either the actual or expected value are NaN.
2015-05-12 11:54:42 +00:00
Mat Ryer e22aedd376 Tweaks and improvements - Fixes #154 2015-04-20 11:19:11 +01:00
Davide D'Agostino 3b361f7ebb Merge pull request #134 from lazywei/master
Add InDeltaSlice.
2015-04-18 12:10:15 -07:00
Chih-Wei Chang 8b75665fbf Add InEpsilonSlice and corresponding testing. 2015-04-18 22:40:21 +08:00
Davide D'Agostino 08c64393a9 Merge pull request #139 from sul3n3t/equalvalues-doc
Doc entry for EqualValues assertion
2015-04-17 12:10:28 -07:00
Davide D'Agostino 59fc8e570c Revert "Remove sprintf equality check"
This reverts commit 842aeb8181.
2015-04-16 16:28:52 -07:00
Tyler Bunnell 4f9c9aeeaa Don't handle func comparisons 2015-04-16 11:41:42 -06:00
Tyler Bunnell 842aeb8181 Remove sprintf equality check
Fix #143
2015-04-16 10:41:30 -06:00
Justin Cummins 4a32eaca39 Doc entry for EqualValues assertion
Also fixes missing right-bracket on Equal assertions.
2015-02-19 13:25:01 -08:00
Justin Cummins d5621338a3 Forwards EqualValues assertion 2015-02-18 14:08:46 -08:00
Chih-Wei Chang f0b02af48e Add InDeltaSlice. 2015-02-18 10:38:24 +08:00
Parker Moore 9cce94c41a assert: fix syntax error in http assertion comments 2015-02-10 17:17:43 -08:00
Paul Querna e73f5c7e39 Add assert.EqualValues, which attempts to convert types to test equality. Fixes #129 2015-02-10 16:56:43 -08:00
Arnaud Porterie 9bab92ede2 Exclude conversions from equality tests
`ObjectsAreEqual` using `ConvertibleTo` causes the `ObjectsAreEqual`
function to be asymmetrical and producing incorrect assertions.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-02-06 16:08:28 -08:00
Samuel Nelson ff9ded0d23 Fixed regexp messages. Resolves #120. 2015-01-19 12:45:07 -07:00
Tyler e897f97d66 Merge pull request #93 from dlclark/master
Fixed regexp error messages to include input values to aide debugging
2015-01-13 10:39:58 -07:00
Samuel Nelson 02a8ab057b Reverse ConvertibleTo check to avoid panic
in `ObjectsAreEqual`, `expectedValue.Convert(actualType)` was being called when
`actualType.ConvertibleTo(reflect.TypeOf(expected))` was true.  This was a problem
for situations such as when expected was an int and actual was a string, since
ints are `ConvertibleTo` strings, but the reverse is not true.

Changing the ConvertibleTo check to `expectedValue.Type().ConvertibleTo(actualType)`
solves the issue.
2015-01-10 12:18:57 -07:00
Tyler 2eaa4b48b8 Merge pull request #110 from cryptix/master
added tests from PR #103
2014-12-22 10:16:26 -07:00
Tyler Bunnell d1472b75d1 fix merge conflict 2014-12-22 10:15:32 -07:00
Henry 7a9121a162 added tests from PR #103 2014-12-17 16:41:45 +01:00
Raphael Meyer 43f1d3eeb3 replace imports in travis config to not break to origin 2014-11-30 09:53:17 +01:00
Raphael Meyer d8aebdb1b6 replaces imports to run with my travis config 2014-11-30 09:39:28 +01:00
Raphael Meyer 807610fbf1 Use deep equal after conversion. 2014-11-30 09:22:56 +01:00
Raphael Meyer 88bce07c05 Convert actual to expected type. Fix unit tests 2014-11-29 18:51:34 +01:00
Raphael Meyer 794aba658c Use valueOf to fix issue with []byte 2014-11-29 18:23:40 +01:00
Neil Conway 38aecdc957 Fix panic when comparing unequal maps.
The change in #94 resulted in using == to compare two values that might not be
comparable. Hence, this resulted in a panic for situations like:

    ObjectsAreEqual(map[int]int{5: 10}, map[int]int{10: 20})

The fix is to use reflect.DeepEqual() instead.
2014-11-24 16:11:51 -08:00
Mat Ryer faedd6eb63 Merge pull request #94 from neilconway/object-equality-golang-1.4
Avoid relying on undefined behavior in assert.ObjectsAreEqual().
2014-11-24 12:06:32 -08:00
Victor Kryukov d3556349dd Fix #99: Contains doesn't work for complex types 2014-11-18 15:26:31 -08:00
ac7 51cd27a889 Wrap NoError message with quote marks
Previous behavior was to print the error with no delimiters:

	No error is expected but got unexpected character in stream

New behavior is to print the error surrounded by quotes:

	Recieved unexpected error "unexpected character in stream"
2014-11-03 10:26:29 -06:00
Neil Conway 49c5c6cdb1 Avoid relying on undefined behavior in assert.ObjectsAreEqual().
The previous assert.ObjectsAreEqual() implementation is broken in go 1.4beta1:

   x := uint64(3)
   log.Printf("equal? %t", assert.ObjectsAreEqual(3, x))

This prints "true" under Go 1.3 and "false" under 1.4beta1 (amd64/darwin).

The reason is that the ObjectsAreEqual() was comparing two reflect.Value values
for equality using ==, but the behavior of that operation is apparently
undefined (https://code.google.com/p/go/issues/detail?id=9034). The fix is to do
the type conversion and then do the comparison between two interface{} values.
2014-10-31 16:02:32 -07:00
Douglas Clark 25dfa29b38 Fixed regexp error messages to include input values to aide debugging 2014-10-21 20:37:01 -07:00
Tyler de7fcff264 Merge pull request #87 from victorkryukov/http-patch
Implement HTTP(Success|Error|Redirect) and HTTPBody(Not)Contains
2014-09-14 20:00:11 -06:00
Victor Kryukov 8b09ac0ee8 Implement HTTP(Success|Error|Redirect) and HTTPBody(Not)Contains 2014-09-14 11:54:12 -06:00
Victor Kryukov b64f0d0b59 Implement Regexp and NotRegexp 2014-09-13 13:13:42 -06:00
Tyler 15dabc1a45 Merge pull request #73 from comogo/includes
Allow Contains and NotContains to check slices and arrays
2014-09-09 20:31:58 -06:00
Tyler b8d551e7d1 Merge pull request #76 from victorkryukov/master
Increase testify/assert test coverage from 86.6% to 97.1%, fix bugs.
2014-09-09 08:10:22 -06:00
Josiah Kiehl (formerly @bluepojo) 27b1e9d9f2 Fix grammer on assert.Len()
🐹
2014-09-04 15:55:45 -07:00
Victor 0f9ba46361 Minor doc string update 2014-08-28 13:05:46 -07:00
Victor Kryukov 5461242ffd Increase assert test coverage from 86.6% to 97.1%, fixed bugs.
Extend tests for NotEqual, Len and add tests for Condition, InEpsilon.
Add tests for Assertion.Condition, Assertion.InEpsilon, Assertion.InDelta
Fix a bug for Assertion.InDelta, Assertion.InEpsilon having incorrect signature.
2014-08-28 12:56:51 -07:00
Mateus Lorandi dos Santos ab1fdba54e Allow Contains and NotContains to check slices and arrays 2014-08-21 11:13:02 -03:00
Oliver Beattie 3c808d3dab Print the expected and actual items of an Equal call on separate lines
Makes for much easier comparison visually
2014-08-17 17:57:22 +01:00
Tyler ae3032ce42 Merge pull request #69 from ascheglov/feature-fatal_checks
Add fatal assertions
2014-07-28 14:04:10 -06:00
OMOTO Kenji e787d6aa9d Add Len() 2014-07-17 18:39:50 +09:00
Anatoly Scheglov f6376e8a31 add the 'require' package 2014-07-16 17:30:01 +04:00
bhenderson 0241e55b78 Add to forward_assertions and fix docs. 2014-07-10 09:31:54 -07:00
bhenderson d0803a1a3a Revert "Add InDelta() and InEpsilon() to docs and remove doc duplication."
This reverts commit d8398675f9.
2014-07-10 09:27:48 -07:00
bhenderson d8398675f9 Add InDelta() and InEpsilon() to docs and remove doc duplication. 2014-07-10 09:26:13 -07:00
bhenderson 256f07baef Refactor InEpsilon() to use InDelta(). 2014-07-10 09:12:30 -07:00
bhenderson 60a27ebea6 Add InEpsilon(). 2014-07-10 08:58:49 -07:00
bhenderson 3b602c6e81 Add InDelta() for comparing floats. 2014-07-10 08:49:17 -07:00
2pi 7d4050544d add `EqualError` to doc.go
* Add both the standard `EqualError` and the wrapped `EqualError`
2014-07-01 14:55:26 +02:00
2pi 8515a19013 add wrapper around the `EqualError` function
* add a `*Assertions` wrapper around the `EqualError` function
* add tests
2014-07-01 13:29:33 +02:00
Tyler Bunnell 459056d303 Merge forward assertions. 2014-06-30 11:34:00 -06:00
Tyler Bunnell 5cc789b89e Clean up golint warnings 2014-06-18 09:28:16 -06:00
Tyler Bunnell 37ec10ac14 Make empty tests pass
Fix #58
2014-06-18 09:21:09 -06:00
Tyler Bunnell d951608d14 Add test for empty ints 2014-06-18 09:20:40 -06:00
James Bowes 21382c1202 Attempt type conversion in assert.Equal
If the two values being tested are of compatible types, convert one
value to the other's type before comparing them. This allows
`assert.Equal(int64(123), uint64(123))` to pass.
2014-06-03 19:01:48 -03:00
Mat Ryer 8eaef7fd24 Merge pull request #49 from seantalts/noerrormsg
Change NoError formatting. fixes #48
2014-04-25 08:23:39 -06:00
Tyler Bunnell d3d427864d Fix merge conflict 2014-04-22 10:01:40 -06:00
mreedell 2c7459d4ba Fixing issue 33 2014-04-14 15:24:44 -04:00
Sean Talts c469b75615 Change NoError formatting. 2014-04-04 11:36:55 -04:00
Guncha 5114cbfc4a Fix #45: assert.Empty should work with channels 2014-03-31 19:10:48 -04:00
SATO taichi 7675c8d8af add more examples to README and doc.go. 2014-03-11 17:52:22 +09:00
taichi e8eaa8ab7a add better API.
because current API is redundant because the pass every time testingT.
2014-03-11 16:38:25 +09:00
Mat Ryer 24fb97e3a8 Merge pull request #39 from xsleonard/exacterror
ExactError, asserts that err is not nil and its string matches
2014-03-07 11:27:35 -07:00
Victor Blomqvist 12fea7c16c Rename the error argument from theError to err in Error asserts. 2014-03-07 17:19:03 +08:00
Steve Leonard e763434382 rename to EqualError 2014-02-15 15:06:23 -05:00
Steve Leonard 92af479c56 ExactError, asserts that err is not nil and its string matches 2014-02-15 12:24:39 -05:00
Mat Ryer 9cc77fa253 Fixes #2 2014-01-28 10:18:27 -07:00
Mat Ryer a3ce369ac0 Merge pull request #32 from onsi/master
receive *testing.T via an interface
2014-01-28 08:45:01 -08:00
Onsi Fakhouri 59b459277c Define a TestingT interface in assertions.go and mock.go 2014-01-20 18:25:43 -08:00
Chakrit Wichian f51780437f Make isEmpty() properly handles maps. [fix #34] 2014-01-19 10:30:16 +07:00
Victor Blomqvist a1964c1081 expanded test for WithinDuration to test for negative durations 2013-09-12 13:53:27 +08:00
Victor Blomqvist ed409be48c expanded test for WithinDuration to test for both |a-b|>=dt and |b-a|>=dt 2013-09-12 13:37:44 +08:00
Victor Blomqvist 0378c681e8 added new assert WithinDuration 2013-09-12 13:24:50 +08:00
Mat Ryer ba887bba64 improved error message 2013-08-02 16:09:49 -06:00
Mat Ryer 8cb5e40869 made Exactly not panic on nils 2013-07-18 09:42:16 -06:00
Tyler Bunnell 1e9c4b3ca7 Use new Fail method internally 2013-07-17 12:44:44 -06:00