Commit graph

2090 commits

Author SHA1 Message Date
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
Michael Miller
9eb2946be6
Change empty args to reusable readonly instance 2022-07-10 17:51:05 -06:00
Michael Miller
29389f1dbf
Add indexer methods for captured arguments 2022-07-10 17:38:17 -06:00
Michael Miller
4aaed186c3
Add with stub modifier 2022-07-10 17:31:13 -06:00
Michael Miller
cd177dd2ae
Implement ProcStub 2022-07-10 11:54:51 -06:00
Michael Miller
4d5004ab4f
Add ExceptionStub 2022-07-09 22:12:24 -06:00
Michael Miller
f17cc73487
More multi value stub tests 2022-07-09 21:48:22 -06:00
Michael Miller
667c05b484
Merge branch 'mock-redesign' of gitlab.com:arctic-fox/spectator into mock-redesign 2022-07-09 20:52:04 -06:00
Michael Miller
9c705bf888
Add MultiValueStub 2022-07-09 20:52:01 -06:00
Michael Miller
8694e5d078
Merge branch 'master' into mock-redesign 2022-07-09 08:23:55 -06:00
Michael Miller
813983de4b
Implement and test DSL for class mocks and doubles 2022-07-07 19:09:18 -06:00
Michael Miller
77096b76e9
Allow StubbedType alongside Stubbable for allow() 2022-07-07 19:01:02 -06:00
Michael Miller
55b2ac9f05
Fix macro for class double name 2022-07-07 19:00:22 -06:00
Michael Miller
ccc8997cca
Test type restricted methods with class mocks 2022-07-07 19:00:07 -06:00
Michael Miller
5008923226
Bump to 0.11.0-alpha 2022-07-07 18:23:54 -06:00
Michael Miller
934dc2fffd
Bump version to 0.10.6 2022-07-07 18:21:52 -06:00
Michael Miller
c317998aba
Bump version to 0.10.6 2022-07-07 18:16:54 -06:00
Michael Miller
99a0013127
Fix warnings from Crystal 1.5.0 regarding positional parameters 2022-07-07 18:16:37 -06:00
Michael Miller
70391b2d31
Fix warnings from Crystal 1.5.0 regarding positional parameters 2022-07-07 18:10:21 -06:00
Michael Miller
f7147299ab
Add stub support to class methods on mocks 2022-07-04 20:19:13 -06:00
Michael Miller
c76ead4065
Auto stub class methods 2022-07-04 20:16:07 -06:00
Michael Miller
fb5f44ef10
Add 'new' and 'allocate' to reserved keywords 2022-07-04 20:06:26 -06:00