Commit Graph

193 Commits (afd4130c14595c7d37c067f8c883f2b5ec2227e2)

Author SHA1 Message Date
Luan Santos afd4130c14 Disable using Stringer/error interfaces for diffing
`spew`'s default formatter will call `String()` or `Error()` in structs
that implement the `fmt.Stringer` or `error` interfaces. Depending on
the implementation of those, the diff can become quite useless to read
(see the example struct I used for the test case in this commit).

This changes `spew`'s configuration to `DisableMethods` so that it will
always use it's own pretty printer. This makes testing structs less
surprising and generally more useful, without tying the tests to the
implementation of `String()` (the user here can always chose to
`require.Equal(a.String(), b.String())` if testing those is important to
them.
2020-02-26 08:50:07 -07:00
Torkel Rogstad 17a1e1d4bf Add Never assertion
Never asserts that a conditon isn't met within a given timeframe.
2020-01-29 09:11:59 +11:00
Duncan Mac-Vicar P ce229281f0 assert.Eventually: fail the testcase if condition is not met
Fixes #837
2020-01-29 09:05:22 +11:00
Dinesh Kumar 8c465a0c8e changing time.Duration equality mismatch output from int64 to readable format. Fixes #626
(cherry picked from commit 637cd144ddae7a3792bcb5c74a3bf3a071c0a250)
2020-01-16 14:34:20 +11:00
Boyan Soubachov 858f37ff9b Allow nil-function Equal comparisons 2019-12-23 07:34:01 -07:00
Boyan Soubachov 22d5528225 Fix InDelta docstring
* Fixed the docstring for the InDelta function.
2019-12-23 07:31:11 -07:00
Boyan Soubachov 4b71b28738 WIP 2019-12-12 12:41:57 -07:00
Boyan Soubachov 7b3a490010 Rename 2019-12-12 12:41:57 -07:00
Boyan Soubachov 937e12391f Added negative dir and file tests
* Added NotFileExists test
* Added NotDirExists test
* Cleaned-up some comment formatting
2019-12-12 12:41:57 -07:00
Leigh McCulloch 5b0b9669b6 Reduce double errors 2019-12-10 08:32:02 -07:00
Leigh McCulloch 367102ea5a Add PanicsWithError
# What
Add `PanicsWithError` that behaves like `PanicsWithValue` but requires
the value to be an `error` and compares an error string against the
error in the same fashion as `EqualError`.

# Why
`PanicsWithValue` is very useful with the value that will panic is a
basic type that can be easily defined in a test, but is less useful for
validating an error because error values may not be easily recreated in
a test to exactly match the error that will be generated in the moment.
This can be because an error will contain fields that aren't exported
and the test may not be able to define the exact error. Most of the time
testing error objects just testing the string is sufficient. This
concept is already supported by this module in the existing `EqualError`
function.
2019-12-10 08:32:02 -07:00
Leigh McCulloch 7c5ac23b81 Make _codegen its own module so that its dependencies do not pollute the root modules dependency graph 2019-12-09 10:12:49 -07:00
Jacek Szwec f1bd0923b8 Fix panic for Eventually functions
Fixes #805, Fixes #835
2019-11-06 15:43:47 -07:00
Boyan a88bf7aab8 PR comments 2019-11-04 07:28:29 -07:00
Boyan cabedb3967 Refactor 2019-11-04 07:28:29 -07:00
Boyan 7088056203 Add NotSame
* Added NotSame test for the assert package
* Added NotSame test for the require package
* Included formatted variants of NotSame for both assert and require
2019-11-04 07:28:29 -07:00
Daniel Cormier 85f2b59c44 Add panic stack to output from NotPanics assertion failures 2019-09-04 10:35:30 -06:00
Vitaly Isaev 555ebd3959 Fix panic for equality assertions for values of aliased string type 2019-07-11 17:52:58 -06:00
Nobuhiro MIKI 0224ef258e Add YAMLEq to assert that two YAML strings are equivalent 2019-07-11 17:50:32 -06:00
Grzegorz Miejski d84e815d44 Introduce Eventually assertion. 2019-07-09 13:57:54 -06:00
Gavin Cabbage 21cb1c2932 add ptr comparison func 'Same' to assert pkg 2019-02-28 14:48:09 -07:00
Alexander Pantyukhin 363ebb24d0 Update assertions.go
fix for value.
2019-01-09 09:23:56 -07:00
apantykhin 834f27f4b7 refactor includeElement method 2019-01-09 09:23:56 -07:00
apantykhin 1ecda4918e fix for comparing kinds 2019-01-03 12:23:29 -07:00
Viswajith Venugopal 6697e04e8d Support arbitrary objects in msgAndArgs 2018-12-12 10:17:45 -08:00
Renato 04af85275a update comment to match exported function 2018-10-13 18:00:28 -06:00
Patrick Curry 2db35c88b9 Fixed outdated comment 2018-10-02 17:32:21 -06:00
Harald Nordgren f2347ac6c9 Allow assert.Equal on string type alias without panicking on failure 2018-10-02 17:26:21 -06:00
Ernesto Jiménez 26d6fa081f More concrete error in Panics and PanicsWithValue 2018-06-09 12:37:22 +01:00
Harald Nordgren 1c264b1925 Refactor ObjectsAreEqual() 2018-06-09 12:21:57 +01:00
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
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 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 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