Michael Miller
7e09016e5c
Add count modifiers for have_received matcher
2022-07-14 20:46:52 -06:00
Michael Miller
e2e33e440b
Add link
2022-07-14 19:59:47 -06:00
Michael Miller
d14a2fa27e
Change "title"
2022-07-14 19:59:14 -06:00
Michael Miller
d6e8ce2cb7
Update version
2022-07-14 19:18:38 -06:00
Michael Miller
c62cc8fdc7
Update checklist
2022-07-14 19:18:23 -06:00
Michael Miller
9c888fef3f
Add specs for mocks and stubs docs
2022-07-14 19:11:45 -06:00
Michael Miller
c0a32505ee
Address Ameba issue
2022-07-14 13:53:30 -06:00
Michael Miller
c228984956
Add specs for anonymous and null object doubles docs
2022-07-14 13:51:24 -06:00
Michael Miller
827b69483b
Disallow stubs for undefined methods in null double
...
Any method_missing invocation should return self.
2022-07-14 13:37:09 -06:00
Michael Miller
7dd77a2096
Add spec for doubles docs
2022-07-14 13:18:13 -06:00
Michael Miller
1d58824e6c
Support default stubs for class_double
2022-07-14 13:18:02 -06:00
Michael Miller
e29c732d0f
Add count to ReceiveMatcher
2022-07-13 16:48:38 -06:00
Michael Miller
be973cdc4b
Add spec for GitHub issue 44
...
https://github.com/icy-arctic-fox/spectator/issues/44
2022-07-13 15:52:31 -06:00
Michael Miller
9efb6c95dd
Workaround compiler bug introduced by aa9ca7a
...
BUG: trying to upcast Nil (Crystal::NilType) <- NoReturn (Crystal::NoReturnType) (Exception)
from /crystal/src/compiler/crystal/codegen/cast.cr:668:5 in 'upcast_distinct'
from /crystal/src/compiler/crystal/codegen/cast.cr:523:15 in 'upcast'
from /crystal/src/compiler/crystal/codegen/codegen.cr:1369:11 in 'accept'
from /crystal/src/compiler/crystal/codegen/codegen.cr:2274:9 in 'visit'
from /crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
...
2022-07-13 15:40:22 -06:00
Michael Miller
f1465c44d8
Fix Ameba issues
2022-07-13 13:42:44 -06:00
Michael Miller
aa9ca7a98e
Don't return nil for methods using NoReturn
2022-07-13 12:24:29 -06:00
Michael Miller
14d8c046f0
Workaround absolute path requirement for mock injection
2022-07-13 12:23:28 -06:00
Michael Miller
ac3b322900
Use absolute path for inject_mock
...
This is necessary to override the original type instead of creating a new one within the spec.
2022-07-13 11:29:19 -06:00
Michael Miller
da3fbc9607
Add spec for GitHub issue 43
...
https://github.com/icy-arctic-fox/spectator/issues/43
2022-07-13 11:17:10 -06:00
Michael Miller
70efa1ad78
Indent multi-line values in failure block output
2022-07-13 11:11:31 -06:00
Michael Miller
181a34a0b3
Display "None" when no methods are called
2022-07-13 10:53:57 -06:00
Mike Miller
b65f53f105
Merge branch 'mock-redesign' into 'master'
...
Overhaul mock system
See merge request arctic-fox/spectator!35
2022-07-13 05:43:53 +00:00
Michael Miller
0ba241221f
Update CHANGELOG
2022-07-12 23:37:13 -06:00
Michael Miller
e52f187eb7
Show new mock and double system in README
2022-07-12 23:22:47 -06:00
Michael Miller
754bfd6939
Intercept most exit calls and raise instead
2022-07-12 23:02:20 -06:00
Michael Miller
3c9c7f88be
Reenable test relying on doubles
2022-07-12 22:32:09 -06:00
Michael Miller
2e5f822e1d
Remove new
from reserved keywords
...
This effectively allows stubs to be placed on the `new` method for types.
A strange issue arose when the keyword was allowed.
The compiler failed to resolve the Stub type from the Double initializer.
The error trace goes through null_double_spec.cr.
Running just that spec file confirms the issue is there, but running other individual files doesn't produce the error.
As a workaround, I've put the full path of Stub in the initializer.
2022-07-12 22:30:04 -06:00
Michael Miller
fe88eefa86
Add inject_mock to DSL
2022-07-12 22:12:48 -06:00
Michael Miller
193a476679
Update known issues to use new mock system
2022-07-12 21:50:45 -06:00
Michael Miller
99fb47c6e9
Remove redundant block conditionals
2022-07-12 21:46:12 -06:00
Michael Miller
df5a4fa77c
Use tap to modify new mock
...
Without this, mocked structs were not getting their stubs applied.
An unintended side-effect is the tap shows up in recorded calls.
This seems to be harmless, but might need to be revisited.
2022-07-12 21:19:51 -06:00
Michael Miller
0e556c3d55
Clear stubs and recorded calls after example completes
2022-07-12 20:40:27 -06:00
Michael Miller
24eec64d64
Check for leaks on class mocks and doubles
2022-07-12 20:09:18 -06:00
Michael Miller
bb0c85d9ec
Fix possible shadowing of mock
2022-07-12 19:50:04 -06:00
Michael Miller
6e57a1c44a
Allow method calls with unconstrained arguments
...
Workaround for the expect-receive DSL syntax to allow methods to be called without matching arguments.
2022-07-12 19:23:13 -06:00
Michael Miller
c91e288f61
Add initial support for exect-receive syntax
2022-07-12 19:11:44 -06:00
Michael Miller
3d7655a5d1
Add support for any_args in DSL
2022-07-12 19:05:55 -06:00
Michael Miller
4aaa8db5e2
Rename Arguments.empty to Arguments.none
2022-07-12 18:59:23 -06:00
Michael Miller
4b2b37477e
Remove unused methods
2022-07-12 18:04:55 -06:00
Michael Miller
b137a8e742
Test matcher text
2022-07-12 18:04:51 -06:00
Michael Miller
d7ea969f55
Pretify stub and call output
...
Fix some tests.
2022-07-12 17:47:05 -06:00
Michael Miller
36cc035417
Add tests for ReceiveMatcher
2022-07-12 17:19:42 -06:00
Michael Miller
00c7141d95
Re-add with
modifier with constraint
...
Fixes `no_args` in DSL.
2022-07-12 10:56:49 -06:00
Michael Miller
694e2e6259
Initial implementation of have_received
2022-07-11 20:25:15 -06:00
Michael Miller
4f46c98a86
Rename with
method to avoid recursive splat and ambiguity
2022-07-11 20:24:51 -06:00
Michael Miller
011ca37b50
Reenable pending tests
2022-07-11 02:59:29 -06:00
Michael Miller
ecab2dd37e
Upcast to AbstractArguments to avoid instantiating methods
...
This reduced compilation times when using a large amount of Arguments types.
2022-07-10 21:54:25 -06:00
Michael Miller
32a9bfd356
Add no_args
2022-07-10 18:51:58 -06:00
Michael Miller
b9eaefb424
Add docs
2022-07-10 18:33:56 -06:00
Michael Miller
ae8421c29e
Address Ameba issue
2022-07-10 17:59:49 -06:00