Commit graph

849 commits

Author SHA1 Message Date
Michael Miller
0b6465e6bc Started playing around with method stubs 2019-10-12 16:30:46 -06:00
Michael Miller
4b57ddab80 Handle changing test scope
This matches the current pattern, where a nested scope can override 
values from a parent scope.
I think this solution is quite clever :)
2019-10-06 11:12:06 -06:00
Michael Miller
1bbe5067b6 Handle deferred stub with type 2019-10-06 10:24:51 -06:00
Michael Miller
49764e5873 Use do...end for multi-line stub def 2019-10-05 22:43:40 -06:00
Michael Miller
6b85bb7ed7 Default raise if stub is called without defintion 2019-10-05 22:42:33 -06:00
Michael Miller
0528ddc2ab Handle stubbed methods with arguments 2019-10-05 22:22:31 -06:00
Michael Miller
47ca96801b Mark internal class as private
Minimal doubles should be done.
2019-10-05 22:06:03 -06:00
Michael Miller
00c0553426 Get contextual values working with doubles 2019-10-05 07:38:13 -06:00
Michael Miller
d08ec75db7 Minimal working double 2019-10-04 23:16:40 -06:00
Michael Miller
bff2668ad4 Remove old files 2019-10-04 23:16:22 -06:00
Michael Miller
c458a490bf Remove usage of sample values 2019-10-04 23:01:46 -06:00
Michael Miller
8c180e818f Merge remote-tracking branch 'origin/release/0.9' into mocks-and-doubles 2019-09-27 14:12:29 -06:00
Michael Miller
425240e66f Merge branch 'release/0.9' into mocks-and-doubles 2019-09-27 14:07:02 -06:00
Michael Miller
0e3727b504 Run after-all hooks correctly 2019-09-26 22:53:16 -06:00
Michael Miller
60ca4361de Fix implicit subject 2019-09-26 21:44:25 -06:00
Michael Miller
f47c48b483 Add pre- and post-conditions 2019-09-26 21:37:29 -06:00
Michael Miller
1eec9190dd Workaround for subject evaluation 2019-09-26 21:24:50 -06:00
Michael Miller
07aeaecca4 Add support for pending tests 2019-09-26 20:46:28 -06:00
Michael Miller
25778d7b41 Change "what" to "description" 2019-09-26 16:49:44 -06:00
Michael Miller
edabaa9447 Dumb auto-format 2019-09-26 16:25:43 -06:00
Michael Miller
e3e4cac9c1 Add source to example groups 2019-09-26 16:23:13 -06:00
Michael Miller
dacca0bf1e Add implicit subject 2019-09-26 16:02:24 -06:00
Michael Miller
a261592776 Add given group 2019-09-26 15:56:48 -06:00
Michael Miller
6ae817d4bc Add random sample 2019-09-26 15:49:06 -06:00
Michael Miller
3d37a94aaf Add optional count to sample group 2019-09-26 15:41:58 -06:00
Michael Miller
311b4b0f2f Use name instead of block_arg 2019-09-26 15:30:29 -06:00
Michael Miller
7e6080aa5f Move harness out of internals 2019-09-26 15:11:54 -06:00
Michael Miller
0067191423 Remove reference to Internals namespace 2019-09-26 15:11:36 -06:00
Michael Miller
1f300a4a18 Use label in sub-group name 2019-09-26 15:05:28 -06:00
Michael Miller
c3ea34e762 Retrieve test value for sample group 2019-09-26 14:57:31 -06:00
Michael Miller
f6e95719ad Remove unnecessary quotes in example name 2019-09-26 14:08:17 -06:00
Michael Miller
e5bd582f5f Handle collection for sample group 2019-09-26 14:05:55 -06:00
Michael Miller
cd0ba81417 Pass test values to test instance 2019-09-26 13:00:23 -06:00
Michael Miller
3c9846ae9b Remove reference to internals 2019-09-26 12:59:42 -06:00
Michael Miller
5d9e7002d6 Some initial work on sample groups 2019-09-26 12:31:23 -06:00
Michael Miller
422c805e21 Rename SampleValues to TestValues
Move out of internal namespace.
2019-09-26 10:26:37 -06:00
Michael Miller
73cef75fcb Remove dummy example 2019-09-26 09:56:54 -06:00
Michael Miller
a355b59f3e Type annotations for return types 2019-09-25 09:12:03 -06:00
Michael Miller
d4e890af4c Merge remote-tracking branch 'origin/master' into example-restructure 2019-09-23 21:30:12 -06:00
Michael Miller
3a6fcb9b0d Fix value negation of attribute matcher 2019-09-23 20:52:03 -06:00
Michael Miller
00d1cd9ea3 Address warnings with return types in generated types 2019-09-23 20:42:04 -06:00
Michael Miller
43dc106c18 Add return type annotations
Addresses Crystal compiler warning about abstract method return types.
2019-09-23 20:32:21 -06:00
Michael Miller
adbfb7da7c Use integer division - Crystal 0.31.0 change 2019-09-23 19:38:15 -06:00
Michael Miller
24ccb77595 Expose running example to before-each and after-each hooks 2019-09-22 11:27:18 -06:00
Michael Miller
5f3c9d2f63 Distinguish group variables 2019-09-22 11:02:53 -06:00
Michael Miller
24eb5e419a Get around_each hooks working again 2019-09-18 21:51:35 -06:00
Michael Miller
b17d19689e Formatting 2019-09-18 09:52:49 -06:00
Michael Miller
db3f89731c Call parent hooks 2019-09-18 09:51:45 -06:00
Michael Miller
957b8a54db Implement before and after hooks 2019-09-17 20:58:26 -06:00
Michael Miller
6e1605f246 Add TestContext 2019-09-17 20:57:59 -06:00
Michael Miller
da8736f891 Don't create test as part of run method 2019-09-17 20:37:06 -06:00
Michael Miller
9129aa4286 Use Deque instead of Array 2019-09-17 20:35:19 -06:00
Michael Miller
52ef5e5ced Some DSL methods for hooks 2019-09-15 10:40:53 -06:00
Michael Miller
7002564ebd Add let and subject with variants
New behavior mimics RSpec - bang variant defines immediately instead of 
not storing.
2019-09-15 09:45:48 -06:00
Michael Miller
c94b284ab3 Replace large DSL files with smaller, logical groups 2019-09-15 09:15:33 -06:00
Michael Miller
3f7c16c888 Move all DSL to one module, but separate files 2019-09-13 14:33:46 -06:00
Michael Miller
fafe5606e6 Rename DSL::Builder to SpecBuilder
Place all builders under SpecBuilder.
2019-09-13 14:10:25 -06:00
Michael Miller
5d86b4f50e Get examples working again 2019-09-12 20:26:54 -06:00
Michael Miller
08ee03b1de Quickly get things somewhat working again 2019-09-12 20:16:41 -06:00
Michael Miller
64166d1c36 Some fixes 2019-09-11 22:21:06 -06:00
Michael Miller
a100191875 Merge branch 'example-restructure' of gitlab.com:arctic-fox/spectator into example-restructure 2019-09-08 11:02:02 -06:00
Michael Miller
a178db05ac Use TestWrapper in Example classes 2019-09-08 10:38:26 -06:00
Michael Miller
de8f298676 Remove hooks, conditions, and sample vlues (for now)
Removed only from examples and example groups.
2019-09-08 10:28:02 -06:00
Michael Miller
e304224bd6 Move stack handling to its own type 2019-09-08 09:59:25 -06:00
Michael Miller
f25eb9164f Some test creation rewrite 2019-09-08 09:58:15 -06:00
Michael Miller
0706a9986c Ensure example is set to finished after running 2019-09-06 13:08:41 -06:00
Michael Miller
1c5b46b981 Use fresh variables 2019-09-01 00:54:04 -06:00
Michael Miller
19913a28d1 Gut factories and example structure code 2019-08-31 13:12:40 -06:00
Michael Miller
b8e125e38f Add test wrapper 2019-08-31 13:12:17 -06:00
Michael Miller
00a2495027 Change test root to SpectatorTest 2019-08-31 13:11:59 -06:00
Michael Miller
752b7f0ffa Update version constant 2019-08-31 10:14:06 -06:00
Michael Miller
bfe641e07e Move sample values to group instance
The goal is to construct examples with a parameterless initializer.
This doesn't quite work, since the sample values are retrieved via the
harness, which doesn't have an active example when the sample values are
created.
2019-08-30 14:46:24 -06:00
Michael Miller
4ecc2c6004 Include ExampleDSL at root
Will need to check if methods can run in that scope.
2019-08-30 13:14:48 -06:00
Michael Miller
64045171c2 Change contexts from modules to classes 2019-08-30 12:39:03 -06:00
Michael Miller
6e9633d001 Hacked in double instance creation 2019-08-26 22:48:15 -06:00
Michael Miller
3462bdea1a Some initial double code 2019-08-26 21:49:47 -06:00
Michael Miller
70e01364ce Address Ameba issue 2019-08-26 21:11:21 -06:00
Michael Miller
4abf97139b Experimenting with auto-mocking methods 2019-08-26 21:06:06 -06:00
Michael Miller
a75ab04dd5 Update version to 0.8.2 2019-08-21 19:28:17 -06:00
Michael Miller
325af1f24e Workaround for Crystal issue
Fix for GitHub issue 1 - 
https://github.com/icy-arctic-fox/spectator/issues/1
Works around Crystal issue 7060 (6920) - 
https://github.com/crystal-lang/crystal/issues/7060

This should be reverted after it is fixed in the Crystal compiler.
2019-08-21 19:26:40 -06:00
Michael Miller
c36859b42b Correct docs 2019-08-17 08:10:26 -06:00
Michael Miller
7f58c52e43 Cleanup 2019-08-17 08:05:05 -06:00
Michael Miller
498635d288 Pass along a proc to generate the array
The "to_a" method is actually dynamically generated.
2019-08-17 08:00:16 -06:00
Michael Miller
43440d37b0 Explicit initializer with sample values
Not sure why it isn't getting the one from the module.
2019-08-17 07:59:32 -06:00
Michael Miller
a59e38155e Defer collection evaluation until build 2019-08-17 07:51:29 -06:00
Michael Miller
34b5487e6f Pass along class type instead of collection 2019-08-15 17:38:54 -06:00
Michael Miller
01c4b78716 Move placeholder initializer up a level 2019-08-15 16:43:25 -06:00
Michael Miller
b026668de2 Formatting 2019-08-12 14:17:23 -06:00
Michael Miller
46c775932a Negated all match is not supported 2019-08-12 14:17:04 -06:00
Michael Miller
0cb77b3355 Add all-matcher to DSL 2019-08-12 14:07:13 -06:00
Michael Miller
8520697efa Initial code for all-matcher 2019-08-12 14:05:14 -06:00
Michael Miller
4e15487a0f Add relative change matcher 2019-08-11 23:08:45 -06:00
Michael Miller
c19f442e6c Add #by modifier methods 2019-08-11 13:52:22 -06:00
Michael Miller
848f80ddf8 Add block short-hand syntax support to change matcher 2019-08-11 13:16:40 -06:00
Michael Miller
2666f80653 Hackish fix for block short-hand syntax
Dunno when this broke or how it ever worked. 😐
2019-08-11 13:16:18 -06:00
Michael Miller
27436b4e09 Need to use fresh variables in this macro 2019-08-11 12:55:38 -06:00
Michael Miller
5dfcad3cb4 Flip operands of != in case expected has custom logic 2019-08-11 12:40:27 -06:00
Michael Miller
e1a119639f Add change exact matcher 2019-08-11 12:39:33 -06:00
Michael Miller
3c539b3517 Fix require statements 2019-08-10 12:54:46 -06:00
Michael Miller
1d205b6ee9 Put test expression on its own line 2019-08-10 12:49:54 -06:00