Michael Miller
bd34b87e22
Simplify JSON formatter by reusing Example's to_json
2021-06-02 23:44:36 -06:00
Michael Miller
8536fcf58c
Fix full_description being an object
2021-06-02 23:41:23 -06:00
Michael Miller
98ba607583
Dumb whitespace
2021-06-02 23:37:01 -06:00
Michael Miller
835fa40773
Handle nil location
2021-06-02 23:35:41 -06:00
Michael Miller
39e917ce57
Consistent location fields
2021-06-02 23:09:30 -06:00
Michael Miller
8f3a7c0a5a
Basically done JSON formatter
2021-06-02 22:48:48 -06:00
Michael Miller
fa3e9dd34d
Implement JUnit formatter
2021-05-30 15:02:30 -06:00
Michael Miller
e30d5c1981
Use multiple << on a single line
2021-05-30 14:21:42 -06:00
Michael Miller
0a7909fb7a
Cleanup
2021-05-30 10:44:09 -06:00
Michael Miller
877831a98b
Add docs
2021-05-30 10:17:49 -06:00
Michael Miller
a4042a9684
Extend PendingBlock from ResultBlock and rename to PendingResultBlock
2021-05-30 10:02:25 -06:00
Michael Miller
7215e28d75
Implement TAP formatter
2021-05-29 23:09:28 -06:00
Michael Miller
40e189a1d1
Fix method name
2021-05-29 23:09:18 -06:00
Michael Miller
48fb293ba0
Define notification type for messages
2021-05-29 22:59:56 -06:00
Michael Miller
76c525de52
Fix call to example_finished
2021-05-29 22:47:53 -06:00
Michael Miller
f02e1acb3b
Remove lazy iteration
...
Fixes issue with empty? method eating the first example for failure and
pending lists.
2021-05-29 18:35:01 -06:00
Michael Miller
5e1ca34146
Fix pending results not being counted
2021-05-29 17:59:16 -06:00
Michael Miller
6d8d117ec2
Handle nodes with no name
2021-05-29 17:50:30 -06:00
Michael Miller
fccd55ed0a
Improve appearance of multi-line error messages
2021-05-29 17:33:45 -06:00
Michael Miller
76dd5603de
Fix harness not updating current
2021-05-29 17:13:14 -06:00
Michael Miller
99378c0f36
Merge branch 'release/0.10' into reporting
2021-05-19 20:15:51 -06:00
Michael Miller
a3305a9273
Merge branch 'master' into release/0.10
2021-05-19 20:15:36 -06:00
Michael Miller
e3576c8924
Add support for be ===
and be =~
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/26
2021-05-19 19:46:46 -06:00
Michael Miller
453f6a2fce
Cleanup
2021-05-18 20:10:02 -06:00
Michael Miller
867c06bd67
Initial working document formatter
2021-05-18 20:01:58 -06:00
Michael Miller
1e2f3f7c66
Use index offset argument
2021-05-18 19:38:04 -06:00
Michael Miller
1addc46f7e
Remove parameter from stop method
2021-05-18 19:03:40 -06:00
Michael Miller
c0befe63e9
Don't use random seed unless randomized
2021-05-18 18:50:43 -06:00
Michael Miller
b970abd334
Limit generated seed to < 100,000
2021-05-16 20:39:35 -06:00
Michael Miller
1525317e2c
Pass along and output random seed
2021-05-16 20:38:02 -06:00
Michael Miller
36f9f2b434
Return true from run method if successful
2021-05-16 20:23:16 -06:00
Michael Miller
ebf04b360e
Add profiling info
2021-05-16 20:21:04 -06:00
Michael Miller
4bb4c2f16e
Dump profile before summary
2021-05-16 19:52:53 -06:00
Michael Miller
aa13b077f3
No need to type restrict io method
2021-05-16 19:47:07 -06:00
Michael Miller
1e3e0daa04
Place error count in parens next to failures
2021-05-16 19:42:15 -06:00
Michael Miller
aee171656a
Fix '<anonymous>' showing up for root group
2021-05-16 19:37:45 -06:00
Michael Miller
84ac41967b
Formatting
2021-05-16 19:29:20 -06:00
Michael Miller
cc09cb1b77
Cleanup and consolidate common code for result blocks
2021-05-16 19:28:59 -06:00
Michael Miller
f81c498aef
Add error block component
2021-05-16 17:14:09 -06:00
Michael Miller
ed3ad662d2
Move failure command list to its own component
2021-05-16 17:13:06 -06:00
Michael Miller
2316377c6e
Rename ExampleFilterCommand to ExampleCommand
2021-05-16 17:08:15 -06:00
Michael Miller
031e892dad
Rename SummaryBlock to Stats
2021-05-16 16:56:19 -06:00
Michael Miller
3ecb04e293
Initial work on summary output
2021-05-16 15:03:37 -06:00
Michael Miller
ee294a3ec2
Use Array instead of Enumerable
2021-05-16 13:22:25 -06:00
Michael Miller
0ed684afbc
Integrate report and summary events
2021-05-16 13:20:02 -06:00
Michael Miller
ceb368a7f4
Overhaul Report
2021-05-16 13:19:04 -06:00
Michael Miller
fb436d2ec4
Define a pending result as neither passing nor failing
2021-05-16 12:31:01 -06:00
Michael Miller
832ffbf403
Split to make it obvious run is called
2021-05-16 12:22:00 -06:00
Michael Miller
59c67c26a9
Result visitor methods should take result as argument
2021-05-16 12:19:16 -06:00
Michael Miller
9a62c1386a
Remove parameter from start_dump and close events
2021-05-16 10:51:50 -06:00
Michael Miller
ba2922e655
Implement broadcast formatter methods
2021-05-16 10:12:40 -06:00
Michael Miller
5da21f8ede
Update Ameba and address issues
2021-05-15 19:51:44 -06:00
Michael Miller
aa03e3527d
Formatting
2021-05-15 19:45:17 -06:00
Michael Miller
eebcba0749
Mostly implemented progress formatter
2021-05-15 19:45:01 -06:00
Michael Miller
e2f4051927
Split error handler from failure method
2021-05-15 19:44:06 -06:00
Michael Miller
a36982d6d6
Use visitor pattern
2021-05-15 19:43:13 -06:00
Michael Miller
d5c4d5e822
Call fail
instead of failure
on visitor
2021-05-15 19:42:59 -06:00
Michael Miller
618e9e195a
Begin triggering events for formatters
2021-05-15 18:31:52 -06:00
Michael Miller
4eb457f197
Define and document formatter methods
2021-05-15 17:01:29 -06:00
Michael Miller
1ea209184e
Formatting
2021-05-12 21:41:56 -06:00
Michael Miller
81f509c083
Get config, spec, builder, and runner working together
2021-05-12 21:41:34 -06:00
Michael Miller
83c4b01e84
Set up placeholder formatters
2021-05-12 21:41:12 -06:00
Michael Miller
ff084bb3cd
Fix dumb mistakes
2021-05-12 21:40:48 -06:00
Michael Miller
b8b6b3b609
Add pass?/fail? methods to Result types
2021-05-12 21:39:50 -06:00
Michael Miller
72b2e7ebcb
Fix paths and references
2021-05-08 23:46:19 -06:00
Michael Miller
7294f2da67
Change ConfigSource to "applicator"
...
Remove unecessary abstract base class.
Shorten name of CLI arguments config applicator.
2021-05-08 23:45:54 -06:00
Michael Miller
f09a6a87e5
Remove TestSuite middle-man object
2021-05-08 23:38:13 -06:00
Michael Miller
e7138080a6
Clean up and simplify Config and Builder
2021-05-08 23:37:33 -06:00
Michael Miller
8a4735b9e6
Use Formatters instead of Reporters (and Formatters)
2021-05-08 23:35:29 -06:00
Michael Miller
f2459cfe94
Override === to call includes?
...
Allows the use of a filter in pattern matching scenarios (select).
2021-05-08 23:33:59 -06:00
Michael Miller
e7c3d8f060
Use filter if only one is provided
...
This is less overhead than creating a composite filter for one child
filter.
2021-05-08 22:53:39 -06:00
Michael Miller
83d7657b18
Use enum flags for run modes
2021-05-08 22:51:54 -06:00
Michael Miller
e8848d6855
Merge branch 'release/0.10' into reporting
2021-05-08 13:23:57 -06:00
Michael Miller
88b323bc27
Move common inspect code up to Node
2021-05-08 13:22:13 -06:00
Michael Miller
d292c01e74
Remove direct references to Example in ExampleGroup
2021-05-08 12:43:41 -06:00
Michael Miller
ef7fca3f95
Bit of cleanup around parent/group
2021-05-08 12:10:27 -06:00
Michael Miller
d7ba47cc49
Clean up hook code
2021-05-08 12:00:29 -06:00
Michael Miller
e47e625016
Remove circular dependency with Node and ExampleGroup
2021-05-07 21:04:17 -06:00
Michael Miller
6bea36d8b6
Move Node out of Spec namespace
2021-05-07 20:09:33 -06:00
Michael Miller
d7bc376429
Some initial work on formatters
2021-05-07 20:05:00 -06:00
Michael Miller
31d819e4c9
Nuke formatting types to prep for new types
2021-05-06 22:11:38 -06:00
Michael Miller
f3afd74dc5
Empty classes for reporting
2021-05-06 22:10:59 -06:00
Michael Miller
ff5d855389
Cleanup harness some
2021-05-06 22:10:40 -06:00
Michael Miller
02b98ea61b
Remove reference to example from result
...
Pass examples instead of results into formatters.
2021-04-26 18:47:11 -06:00
Michael Miller
f24d634ccb
Merge branch 'release/0.10' into specs
2021-04-26 17:19:25 -06:00
Michael Miller
f549fcfa7a
Minor changes to configure methods
2021-04-26 17:17:18 -06:00
Michael Miller
6c98d7107c
Docs
2021-04-26 17:11:53 -06:00
Michael Miller
5dfc60d4cd
Fix nil reference error when example name is unavailable
2021-04-26 16:53:04 -06:00
Michael Miller
29594eefab
Merge branch 'master' into release/0.10
2021-04-26 11:19:08 -06:00
Michael Miller
f0b524dc47
Remove workaround
...
https://github.com/icy-arctic-fox/spectator/issues/1 should be resolved
by https://github.com/crystal-lang/crystal/pull/8234
2021-04-20 19:27:41 -06:00
Michael Miller
93e270f87a
Support variables and methods for type matcher (be_a).
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/25
2021-04-17 09:38:29 -06:00
Michael Miller
d612657b15
Merge branch 'release/0.10' into specs
2021-03-31 15:28:16 -06:00
Michael Miller
3d702f9bc6
Merge branch 'master' into release/0.10
2021-03-31 15:19:30 -06:00
matthewmcgarvey
5bd911341b
Set end_line equal to line if end_line not provided
2021-03-30 15:29:51 -04:00
matthewmcgarvey
8fafd2467d
Allow matching any line number of example in filter
2021-03-30 00:18:08 -04:00
Michael Miller
74b78b7ca8
Rename Source to Location
2021-02-12 22:46:22 -07:00
Michael Miller
08451df643
Add matcher to check compiled type of values
2021-02-12 18:33:50 -07:00
Michael Miller
3083f82132
Change DSL::Values to DSL::Memoize
2021-02-10 17:07:49 -07:00
Michael Miller
3cd569e639
Prevent using reserved keywords in let and subject
2021-02-10 16:58:17 -07:00
Michael Miller
86a85c0946
Missed a method that should be private
2021-02-09 23:27:00 -07:00
Michael Miller
8b5fd099bb
More docs
2021-02-09 22:50:09 -07:00
Michael Miller
8232da1167
Mark DSL generated methods as private
2021-02-09 22:40:15 -07:00
Michael Miller
7a5f7adfc2
Change Anything to only use case equality
2021-02-09 21:18:20 -07:00
Michael Miller
a20f2d4f98
Test and improve "Anything"
2021-02-09 19:10:11 -07:00
Michael Miller
8d48e441b2
Fix generating source from brace-less examples.
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/20
2021-02-03 10:06:00 -07:00
Michael Miller
0363c43dff
Fix described_class
...
Must be a macro, otherwise the return type becomes a union of all nested
described_class methods, which can cause weird errors.
2021-01-31 00:38:17 -07:00
Michael Miller
a20b7cad80
Workaround for case where wrapper might store a type
2021-01-30 23:49:20 -07:00
Michael Miller
e275711f2b
Formatting
2021-01-30 23:48:59 -07:00
Michael Miller
ff49c674c6
Fix around_each hook ordering when at the same level
2021-01-30 21:15:20 -07:00
Michael Miller
0f44403053
Fix namespaces preventing structs from being mocked
2021-01-30 21:11:51 -07:00
Michael Miller
0332b6eb3b
Log when deferred operations run
2021-01-30 21:07:42 -07:00
Michael Miller
292dfcbe29
Ignore nameless groups in document hierarchy
2021-01-30 21:00:28 -07:00
Michael Miller
e44505d4c1
Set nameless example to matcher description
2021-01-30 21:00:01 -07:00
Michael Miller
82e13f5434
Sloppily handle deferred operations
2021-01-30 20:53:09 -07:00
Michael Miller
078058ad05
Fix various issues with subjects
...
All tests in crystal spec pass!
2021-01-30 20:38:09 -07:00
Michael Miller
948e29a8b7
Fix short-hand should syntax
2021-01-30 20:27:36 -07:00
Michael Miller
62d478f7c2
Prevent overly verbose output of internals
2021-01-30 20:20:30 -07:00
Michael Miller
9743f37e5c
Capture reported expectations
2021-01-30 20:07:45 -07:00
Michael Miller
bda554739c
Re-add JSON output for some types
2021-01-30 20:07:36 -07:00
Michael Miller
9d139dfeed
Hack together result output
2021-01-30 19:42:46 -07:00
Michael Miller
17a3f27029
Address Ameba errors
2021-01-30 18:57:29 -07:00
Michael Miller
e8b284fc60
Fix namepsaces
...
crystal spec compiles again!
2021-01-30 17:40:33 -07:00
Michael Miller
b6335ab4bc
Update includes list
2021-01-30 17:40:03 -07:00
Michael Miller
d3ad0963cd
Minor fixes
2021-01-30 17:31:50 -07:00
Michael Miller
b07dca697e
Remove seemingly unused context stubs code
2021-01-30 17:27:17 -07:00
Michael Miller
3b5086c74b
Re-add mocks to harness
2021-01-30 17:27:02 -07:00
Michael Miller
73985772b7
DSL fully added back in
2021-01-30 16:43:13 -07:00
Michael Miller
d43d309a47
Note about tag inheritence
2021-01-30 16:39:41 -07:00
Michael Miller
3bc567da4c
Skip examples marked pending
2021-01-30 16:36:15 -07:00
Michael Miller
2301e44bd1
Add pending? method
2021-01-30 16:05:32 -07:00
Michael Miller
20680f37cb
Add docs
2021-01-30 15:39:29 -07:00
Michael Miller
ba967218fa
Move tags code to a common location
2021-01-30 15:34:17 -07:00
Michael Miller
bd942bb644
Shorten tag method names
...
Plain `tags` is safe to use as a class method on the group.
2021-01-30 14:13:27 -07:00
Michael Miller
e093ec788e
Clean up tags method generation by moving it to another macro
2021-01-30 14:08:42 -07:00
Michael Miller
803a09464d
Initial work to pass along pre-set tags
...
Define pending examples and groups using this method.
2021-01-30 12:32:13 -07:00
Michael Miller
de779fdf61
Remove unecessary type name
2021-01-30 12:26:29 -07:00
Michael Miller
fdc2a71dd5
Formatting
2021-01-30 12:07:45 -07:00
Michael Miller
c5246e1cd3
Promote Tags to the Spectator namespace
2021-01-30 12:07:23 -07:00
Michael Miller
db877da984
Change tags to symbols
2021-01-30 12:03:38 -07:00
Michael Miller
5166cd7778
Fix case with no tags and some metadata
...
Simplify tag set construction code.
2021-01-30 12:01:49 -07:00
Michael Miller
467f0d3ad4
Pass along tags
2021-01-30 11:34:01 -07:00
Michael Miller
e77d6f0a4f
Change groups from metadata to tags
2021-01-30 11:21:49 -07:00
Michael Miller
71a497b148
Move tags to node level
2021-01-30 11:20:20 -07:00
Michael Miller
8cf498c9e9
Switch to using tags instead of metadata
2021-01-30 11:13:30 -07:00
Michael Miller
11cb16fb3a
Add missing call to super
2021-01-30 10:14:09 -07:00
Michael Miller
a56b1e0eb1
Somewhat functional metadata unwrap
2021-01-30 01:16:26 -07:00
Michael Miller
466a388558
Initial code for example metadata
2021-01-30 00:40:59 -07:00
Michael Miller
5cccf5b4cb
Support example as block argument to let and subject
...
Surprisingly, RSpec supports this.
https://relishapp.com/rspec/rspec-core/v/3-10/docs/metadata/current-example
2021-01-22 23:00:17 -07:00
Michael Miller
76378c9dae
Whitespace
2021-01-21 21:05:12 -07:00
Michael Miller
a8840351d5
More work hooking up expectations
2021-01-21 00:03:57 -07:00
Michael Miller
b7ed4ec14c
Nest spec types
2021-01-21 00:03:39 -07:00
Michael Miller
ce6f77656a
Use ExpectationFailed instead of AssertionFailed
2021-01-20 21:38:34 -07:00
Michael Miller
98a29309ff
Remove assert methods
2021-01-20 21:36:18 -07:00
Michael Miller
f97e5365e3
Merge branch 'example-api' of gitlab.com:arctic-fox/spectator into example-api
2021-01-16 18:05:48 -07:00
Michael Miller
73dc7ae811
Fix copy/paste docs
2021-01-16 17:16:31 -07:00
Michael Miller
a7ac170153
Remove unused methods
2021-01-16 17:07:07 -07:00
Michael Miller
57c9333c1f
Match hook ordering of RSpec
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/12
2021-01-16 17:04:42 -07:00
Michael Miller
cd519178ac
Remove whitespace
2021-01-16 16:52:41 -07:00
Michael Miller
13061cfb38
Workaround context scope not used in method delegation
2021-01-16 16:52:16 -07:00
Michael Miller
153933b044
Add DSL and code to create around_each hooks
2021-01-16 16:47:40 -07:00
Michael Miller
36c2a5d368
Logic for around_each hooks
2021-01-16 16:28:33 -07:00
Michael Miller
5ea83f51bb
Cache implicit subject
2021-01-16 12:10:52 -07:00
Michael Miller
d738494fdf
Cleanup example name output
2021-01-16 11:49:43 -07:00
Michael Miller
3527507639
Remove debug
2021-01-16 11:13:20 -07:00
Michael Miller
3ec267abbb
Fix reporting for should syntax
2021-01-16 11:12:41 -07:00
Michael Miller
97923d6bcd
Handle nil labels
2021-01-16 11:11:42 -07:00
Michael Miller
0992bad7eb
Get harness compiling again
2021-01-16 11:03:05 -07:00
Michael Miller
175ce8f293
Include matchers DSL
2021-01-16 11:02:49 -07:00
Michael Miller
4500ebcddc
Update old references to Value and Block
2021-01-16 11:02:29 -07:00
Michael Miller
58e7981b0c
Fix type warning
2021-01-16 11:00:54 -07:00
Michael Miller
e09f5c960a
Change Assertions to Expectations
...
Start expectation rework.
2021-01-16 10:22:23 -07:00
Michael Miller
50d1f69230
Don't cache the block return value
...
Let the matcher handle this if it needs to.
2021-01-15 23:15:07 -07:00
Michael Miller
a74957204b
Introduce abstract generic value type
...
Sits between AbstractExpression and Value and Block.
2021-01-15 22:32:02 -07:00
Michael Miller
4ed8c4a573
Implement remaining assertion macros
...
Move "should" methods.
2021-01-10 11:09:28 -07:00
Michael Miller
096c31d7f5
Initial work on assertions
2021-01-09 19:50:32 -07:00
Michael Miller
122395837f
Implement remaining value DSL macros
2021-01-09 17:36:50 -07:00
Michael Miller
391325d431
Initial work on values DSL
2021-01-09 17:01:33 -07:00
Michael Miller
4108a6602d
Simplify get method
2021-01-09 16:57:23 -07:00
Michael Miller
3e4b77da77
Create value wrapper
2021-01-09 16:51:37 -07:00
Michael Miller
aa4c257ade
Change Wrapper to a nested type for Lazy
2021-01-09 14:35:58 -07:00
Michael Miller
5cac4aa5a1
Add lazy utility
2021-01-09 14:19:40 -07:00
Michael Miller
fb0423ed02
Move top-level types into spectator/ sub-directory
2021-01-09 13:56:32 -07:00
Michael Miller
7451769a29
Pass current example as block argument
2021-01-09 13:34:15 -07:00
Michael Miller
009ca4776a
Cleanup new DSL macros
2021-01-09 13:17:42 -07:00
Michael Miller
fbd9713d52
Remove unused and deprecated types
2021-01-09 12:56:35 -07:00
Michael Miller
2e8036d230
Move instance variable
2021-01-09 12:48:53 -07:00
Michael Miller
65dba9f317
Don't need delegates stored in hooks
...
Use proc instead. The context can be retrieved from the example
instance.
2021-01-09 12:04:27 -07:00
Michael Miller
c4289b82da
Better trace message for initial hook processing
2021-01-09 11:33:29 -07:00
Michael Miller
df096d91aa
Capture source info for hooks
2021-01-09 11:30:00 -07:00
Michael Miller
def66acc15
Trace hook invocation
2021-01-09 11:14:27 -07:00
Michael Miller
e5cbc8d631
Promote hooks to fully-fledge types
...
Hook types include a source, label, and context delegate.
2021-01-09 11:06:59 -07:00
Michael Miller
cf422eca02
Add null constructor
2021-01-09 10:56:33 -07:00
Michael Miller
7d0ba752e9
Change ExampleNode to SpecNode
2021-01-09 10:39:04 -07:00
Michael Miller
0ee708281f
Cleanup hook macros
2021-01-09 10:27:54 -07:00
Michael Miller
950f6b3424
Add block expression
2021-01-09 00:13:22 -07:00
Michael Miller
fbe9f22e02
Start rework on capturing expressions
2021-01-09 00:12:28 -07:00
Michael Miller
2ecd4ded6d
Fix line numbers being wrong with macro expansion
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/18
2021-01-08 15:32:15 -07:00
Michael Miller
b697511761
Slight doc improvement
2020-12-31 18:45:56 -07:00
Michael Miller
4c6b6e6436
Merge branch 'master' into example-api
2020-12-23 14:52:53 -07:00
Michael Miller
891cd4bbf7
Change includes to has
2020-12-23 14:39:24 -07:00
Michael Miller
20caed9262
Add contain matcher improvements to have matcher
2020-12-23 14:38:30 -07:00
Michael Miller
edf8ae36df
Fix negated contain case
2020-12-23 14:19:40 -07:00
Michael Miller
a2ef0fa46a
Consistent comments
2020-12-23 14:17:05 -07:00
Michael Miller
de1af7178c
Fix string usage with contain matcher
2020-12-23 14:11:50 -07:00
Michael Miller
875ca587f3
Show missing values in error output
2020-12-23 13:44:12 -07:00
Michael Miller
f465df48d4
Fix copy/paste fail docs
2020-12-23 13:18:36 -07:00
Michael Miller
5ec7e25d57
Remove splat
2020-12-23 12:54:44 -07:00
Michael Miller
0540f94823
Add contain_elements and have_elements variants
2020-12-23 12:38:37 -07:00
Michael Miller
4533cffce7
Initial code to run hooks
2020-11-15 11:25:07 -07:00
Michael Miller
2f4cbd9c33
Specify contents of event trigger method with macro block
...
Implement calling parent group hooks.
2020-11-15 11:22:52 -07:00
Michael Miller
0279606a1c
Placeholder code for after hooks
2020-11-15 11:22:06 -07:00
Michael Miller
19d57dd828
Add call_once variant of events
2020-11-14 17:02:24 -07:00
Michael Miller
b4e74444d1
Some work on hooks in DSL
2020-11-08 22:21:52 -07:00
Michael Miller
7d54884196
Don't pass context, get/cast from example instance
2020-11-08 16:53:54 -07:00
Michael Miller
b8dc83286c
Upcast context to reduce method instances generated by compiler
2020-11-08 16:52:08 -07:00
Michael Miller
f433405ece
Scratch work
...
Trying to implement hooks. Ran into a problem with contexts.
2020-11-08 15:06:49 -07:00
Michael Miller
688c08b087
Initial work on hooks rework
2020-11-07 22:04:37 -07:00
Michael Miller
1f319a70ce
Add docs
2020-11-07 22:04:21 -07:00
Michael Miller
4230ec70a0
Move test handling code to Harness
2020-11-07 20:56:30 -07:00
Michael Miller
dba2e23750
Typo
2020-11-07 15:24:22 -07:00
Michael Miller
f7fe177685
Minor adjustments
2020-11-07 15:01:08 -07:00
Michael Miller
8ae6ef478b
Dynamic examples with null context
2020-11-07 14:43:59 -07:00
Michael Miller
40dd85eb38
Bit of naming cleanup
2020-11-07 13:47:39 -07:00
Michael Miller
347e1a84e5
Dedicated example runner type
2020-11-07 13:47:31 -07:00
Michael Miller
b8901d485d
Merge branch 'master' into example-api
2020-11-07 11:18:47 -07:00
Michael Miller
b91103b40a
Handle case where block is provided with return type
2020-11-07 11:04:03 -07:00
Michael Miller
8966c0976b
Allow manual specification of return type
2020-11-07 10:56:33 -07:00
Michael Miller
e8afe5070b
Address Ameba issues
2020-10-19 20:34:18 -06:00
Michael Miller
a0e6d5c4e8
Re-introduce config options
2020-10-19 20:19:25 -06:00
Michael Miller
c36e006c85
Move top-level DSL to its own module
2020-10-17 22:57:27 -06:00
Michael Miller
87c8914187
Typo
2020-10-17 22:12:47 -06:00
Michael Miller
e4f3d334ed
Consistent naming of random seed
2020-10-17 22:12:02 -06:00
Michael Miller
225e1a52ba
Clean up example randomization
2020-10-17 22:11:04 -06:00
Michael Miller
b2bf980685
Some config cleanup
2020-10-17 21:39:41 -06:00
Michael Miller
79499c5d2e
Add config to spec builder
2020-10-17 17:40:38 -06:00
Michael Miller
4462f27316
Rework result types
2020-10-17 14:56:31 -06:00
Michael Miller
788b12a8bc
Fix example methods overriding previously defined methods
2020-10-17 12:12:04 -06:00
Michael Miller
27875631d3
Mostly implement inspect method
2020-10-17 11:51:16 -06:00
Michael Miller
9c1fd6fb5a
Use standard log utility
2020-10-17 11:46:21 -06:00
Michael Miller
e6d78345c4
Rename debug macro
2020-10-17 11:25:46 -06:00
Michael Miller
4974054de7
Some code to run a spec
2020-10-17 11:23:51 -06:00
Michael Miller
9ac6121201
New stub syntax to support operator methods
...
Works like:
stub :[], index : Int32 { 42 }
Addresses https://github.com/icy-arctic-fox/spectator/issues/14
2020-10-01 18:23:28 -06:00
Michael Miller
f71a8ac6a3
Merge branch 'master' into example-api
2020-09-27 12:46:38 -06:00
Michael Miller
e68697a212
Fix stubbed yielding method calling original instead of stub
2020-09-27 10:30:51 -06:00
Michael Miller
0970f02465
Yield instead of forwarding block
...
Forwarding the block like this captures it, which prevents yield from
being used.
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/54
2020-09-27 10:14:30 -06:00
Michael Miller
ec6018bed4
Start reactivating runner
2020-09-27 09:10:27 -06:00
Michael Miller
579fcacfde
Move spec builder
2020-09-26 22:51:58 -06:00
Michael Miller
543df88d39
Forward build method
2020-09-26 22:25:04 -06:00
Michael Miller
4567162459
Prevent defining an example or group in a test
2020-09-26 19:23:57 -06:00
Michael Miller
99a9d7960a
Formatting
2020-09-26 19:23:16 -06:00
Michael Miller
60795a371d
Reorganize
2020-09-26 19:15:34 -06:00
Michael Miller
b8ba38152e
Cleanup example description handling
2020-09-26 19:14:08 -06:00
Michael Miller
1d359efcb0
Improve source line detection
2020-09-26 19:12:42 -06:00
Michael Miller
1ad41ac016
Cleanup group description handling
2020-09-26 19:11:52 -06:00
Michael Miller
cccfa8ea1d
Formalize Spectator debug
2020-09-26 18:23:48 -06:00
Michael Miller
f4a05502f9
Example names can't be a symbol
2020-09-26 18:14:59 -06:00
Michael Miller
96a7989815
Remove unreferenced code
2020-09-26 18:14:41 -06:00
Michael Miller
acb3b16496
Add some docs
2020-09-26 18:14:22 -06:00
Michael Miller
de99fce5b1
Merge branch 'master' into example-api
2020-09-26 11:10:55 -06:00
Michael Miller
a4680f2584
Don't splat values for failed match data
...
This caused an issue where keys with the same name as existing arguments
couldn't be used.
In this case, "description" and "failure_message".
Fixes https://github.com/icy-arctic-fox/spectator/issues/13
2020-09-26 10:50:18 -06:00
Michael Miller
6363436afa
Nested macros for defining DSL keywords
2020-09-25 21:44:17 -06:00
Michael Miller
a0af1e7cd1
Allow string interpolation in some macros
...
Enables interpolation in example and group descriptions, as well as
anonymous doubles.
Addresses https://github.com/icy-arctic-fox/spectator/issues/10
2020-09-17 09:35:49 -06:00
Michael Miller
9103bfde0f
Playing around with line numbers
...
Trying to find some pattern in the line descripancies reported to the
macros compared to the source file.
2020-09-14 20:00:17 -06:00
Michael Miller
bc602d9b62
Working example creation from DSL
2020-09-14 13:55:07 -06:00
Michael Miller
7c44cba667
Fix group creation via DSL
2020-09-12 18:40:56 -06:00
Michael Miller
dad669686c
Temporarily disable running examples
2020-09-12 18:40:36 -06:00
Michael Miller
67ac06e4d6
Some initial spec builder code
2020-09-12 18:37:14 -06:00
Michael Miller
0190cc7260
Fix leading whitespace with root group
2020-09-12 18:35:31 -06:00
Michael Miller
98f886d9d4
Implement finished? method
2020-09-12 16:02:11 -06:00
Michael Miller
3133717323
Change NestedExampleGroup to ExampleGroup
2020-09-12 16:01:52 -06:00
Michael Miller
225c358cb8
Some initial work on cleaned up groups
2020-09-12 16:01:29 -06:00
Michael Miller
1d32946760
Note about docs in macros
2020-09-12 15:59:45 -06:00
Michael Miller
b271028c1e
Remove most includes for now
2020-09-12 15:59:20 -06:00
Michael Miller
e455708467
Add missing require statements
2020-09-12 15:58:54 -06:00
Michael Miller
6e3ec79a14
Remove SpecBuilder types
2020-09-12 15:58:07 -06:00
Michael Miller
a08c87dd5d
Remove workaround
...
https://github.com/icy-arctic-fox/spectator/issues/1 should be resolved
by https://github.com/crystal-lang/crystal/pull/8234
2020-09-12 15:28:55 -06:00
Michael Miller
b866bc7e08
Create example context variants
2020-09-06 10:31:23 -06:00
Michael Miller
3f7e0d7882
Add missing require statement
2020-09-05 19:55:46 -06:00
Michael Miller
3a5dd76324
Remove ExampleBase
...
Pending/skip functionality will be merged into Example or extend from
it.
2020-09-05 19:54:55 -06:00
Michael Miller
fbf574b0b9
Create ExampleGroup and use shared ExampleNode type
2020-09-05 16:47:40 -06:00
Michael Miller
0f9c1ad09c
Add require for json
2020-09-05 16:36:12 -06:00
Michael Miller
4debebb8f0
Formatting
2020-09-05 15:55:28 -06:00
Michael Miller
55900ebecd
Initial rework of example type structure
2020-09-05 15:01:22 -06:00
Michael Miller
9c6502234b
Define test context types
2020-09-05 14:55:49 -06:00
Michael Miller
53c9dd0445
Display first line only after "Error:"
2020-08-16 10:00:04 -06:00
Michael Miller
8f0718db86
Handle splat in macro for matcher DSL
...
Should fix https://github.com/icy-arctic-fox/spectator/issues/8
2020-08-11 14:37:37 -06:00
Michael Miller
9c14c69bba
Change "ditto" to ":ditto:"
2020-08-06 19:20:18 -06:00
Michael Miller
4e50108fb9
Use smaller range for default random seed
...
RSpec seems to use a smaller range, something like 65k (UInt16).
2020-07-27 13:39:57 -06:00
Michael Miller
e5ed6418db
Only include seed if report if randomized
2020-07-27 13:37:41 -06:00
Michael Miller
e168b0ac7a
Blank line before seed output
2020-07-27 13:32:49 -06:00
Michael Miller
8fc2c93960
Track seed used when just -r is provided
2020-07-27 13:32:39 -06:00
Michael Miller
ba29c1e032
Show random seed
...
Only works when a seed specified, not when a random seed is used.
2020-07-27 12:10:39 -06:00
Michael Miller
7aa8cb14a4
Force seed to UInt64
2020-07-27 10:37:08 -06:00
Michael Miller
a8e2e5c021
Store random seed
2020-07-27 10:36:53 -06:00
Michael Miller
7fc25b84c3
Fix bug when using multiple short-hand block expects in one test
...
For instance, this would fail:
```
it "does something" do
expect(&.foo).to be_true
expect(&.false).to be_false
end
```
2020-05-29 20:06:37 -06:00
Michael Miller
476e54bb2b
Store expected value as array
...
Fixes issue where contain_exactly matcher would try to append to a tuple
(which isn't allowed).
2020-05-28 22:23:29 -06:00
Michael Miller
c99401f7d5
Use ± symbol for range
2020-05-09 16:10:16 -06:00
Michael Miller
e2c2ebafd3
No need to specify arguments to super and previous_def
2020-04-28 08:30:40 -06:00
Michael Miller
d02b848ad5
Use the exact text from the describe value
...
This fixes described_class.new when using a generic type.
2020-04-26 11:13:07 -06:00
Michael Miller
84476b0357
Treat to(mock) and to_eventually(mock) as the same
...
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/48
2020-04-23 22:43:37 -06:00
Michael Miller
6b0526fc45
Silence warnings from Crystal 0.34
2020-04-06 18:23:53 -06:00
Michael Miller
09e9c23115
Additional checks that the actual value satifies needed method
2020-04-03 11:47:11 -06:00
Michael Miller
7fadd92f62
Check that actual value is a collection
...
Previously, a compilation error would occur if the actual value didn't
respond to `to_a`.
A way to reproduce this is for the actual value to be nilable.
2020-04-03 11:32:37 -06:00
Michael Miller
748c25afcb
Fix issues with unordered array matcher
2020-04-03 11:01:54 -06:00
Michael Miller
a655abb7ac
Fix issue when using nil with be
matcher
2020-04-01 22:17:19 -06:00
Michael Miller
68bac59cab
Hacky solution for https://gitlab.com/arctic-fox/spectator/-/issues/44
...
Don't use a proc stub, which doesn't support arguments.
2020-03-28 11:41:49 -06:00
Chris Watson
e53b1167b3
Make sure superclass isn't nil
2020-03-20 16:34:37 +00:00
Michael Miller
e343a97f37
Don't use a splat here
2020-03-07 17:05:52 -07:00
Michael Miller
e126cb744b
Ensure that a TypeNode is resolved
...
When describing a constant, the `resolve?` method can return a
non-TypeNode, which is the constant's value.
The Crystal docs seem to indicate this should only return `TypeNode` or
`NilLiteral`.
But, I can see when this would be useful to resolve a constant in a
macro.
To work around this, `described_class` and `subject` should only be
defined when it resolves to a `TypeNode`.
Fixes arctic-fox/spectator#40
Fixes arctic-fox/spectator#41
2020-03-04 23:16:29 -07:00
Michael Miller
d0f229c659
Pass example proc to around_each hook if there are no arguments
2020-03-03 15:20:25 -07:00
Michael Miller
e92aa7ed57
Implicit subject should not use .new with modules
...
Fixes GitHub issue https://github.com/icy-arctic-fox/spectator/issues/6
2020-02-22 22:59:09 -07:00
Davide Paolo Tua
2bf6682816
Fix accidental deletion
2020-02-21 13:23:33 +01:00
Davide Paolo Tua
83ac420273
Add test for fix, fix test for range_matcher
2020-02-21 13:19:27 +01:00
Davide Paolo Tua
ce9bf918c1
Fix syntax errors in be_between matcher
2020-02-21 12:48:22 +01:00
Michael Miller
3aaab0e74f
Fix memoized subject from context description another way
...
The other method gave a strange compiler error when running specs.
Something to do with "K" not having an inspect method.
In /usr/share/crystal/src/hash.cr:1826:13
1826 | key.inspect(io)
^------
Error: undefined method 'inspect' for K
2020-02-16 19:50:20 -07:00
Michael Miller
dd48bf6f25
Fix subject not being memoized when using described_class
2020-02-16 19:34:48 -07:00
Michael Miller
2aba67edae
Fix idiosyncrasies around class method stubs
...
The new method misbehaves here.
It always appeared as defined, even though it isn't explicitly defined
in the class.
2020-02-14 18:14:32 -07:00
Michael Miller
7a8e570bea
Fix typo with should_eventually
2020-02-10 17:50:35 -07:00
Michael Miller
a7db9ff0bb
Don't force previous_def on class methods
2020-02-10 17:46:36 -07:00
Michael Miller
d30e65ee2d
Missing ? on method name check
2020-01-20 20:42:16 -07:00
Michael Miller
721425c3c8
Run deferred expectations after all hooks
2020-01-20 20:15:49 -07:00
Michael Miller
60f1c3091b
Allow be
matcher to be used on structs
2020-01-19 22:39:21 -07:00
Michael Miller
b1984b343a
Add should
keywords to examples
...
Allows short-hand like:
it { should be_empty }
2020-01-19 22:12:06 -07:00
Michael Miller
e60c287216
Fix a dumb with merge
2020-01-19 10:05:21 -07:00
Michael Miller
64f6456935
Merge branch 'specs'
2020-01-19 09:52:41 -07:00
Michael Miller
272ebcd693
Fix subject with group describing a type
...
An explicit subject should be used when describing a type. This mimics
RSpec.
2020-01-19 09:52:12 -07:00
Michael Miller
a2508d5f6b
Fix negation case for respond_to matcher
2020-01-17 22:08:52 -07:00
Michael Miller
f825a34771
Fix issue with implicit vs. explicit subject
...
Addresses the issue pointed out in !25
There was a recent change that set a subject to the first argument of
`describe` and `context`. This prevented an explicitly defined subject
from being accessible in nested groups.
2020-01-17 14:53:03 +03:00
Michael Miller
13a0b9e2d3
Fix issue with implicit vs. explicit subject
...
Addresses the issue pointed out in !25
There was a recent change that set a subject to the first argument of
`describe` and `context`. This prevented an explicitly defined subject
from being accessible in nested groups.
2020-01-16 18:36:40 -07:00
Michael Miller
b25388a165
Merge branch 'specs' of gitlab.com:arctic-fox/spectator into specs
2020-01-14 20:10:53 -07:00
Michael Miller
c48b9ed9e1
Resolve let! not working on uninferable types
...
Resolves https://github.com/icy-arctic-fox/spectator/issues/4
Use ValueWrapper trick again and initialize immediately with before_each
hook.
2020-01-14 20:07:56 -07:00
Michael Miller
d5c5a82395
Add with_message modifier to raise_error matcher
2020-01-06 23:46:38 -07:00
Michael Miller
f11b548f4e
Mimic RSpec behavior of match
matcher
...
The code:
expect(/foo/).to match("food")
would normally evaluate:
"food" === /foo/
which is false.
However, in RSpec, this expectation is true.
2020-01-06 23:01:45 -07:00
Michael Miller
5fa6b5d549
Fix negation expectation text
2020-01-06 22:11:36 -07:00
Michael Miller
590d81979e
Workaround typing issues
2020-01-06 22:04:05 -07:00
Michael Miller
5673144527
Fix negative match case for contain/cover matcher
2020-01-05 23:01:25 -07:00
Michael Miller
b7c686e836
Add cover
matcher
...
Works the same as `contain` but is for ranges.
2020-01-05 22:49:27 -07:00
Michael Miller
8143229fdb
Fix failure message
2020-01-05 22:47:57 -07:00
Michael Miller
034c1cd6cb
Change array matcher to allow any order
2020-01-05 11:42:39 -07:00
Michael Miller
93c442d1e2
Add instance_of matcher to check exact type
2020-01-04 12:46:08 -07:00
Michael Miller
8cfed440ed
Fix typo with be_a matcher
2020-01-04 12:45:49 -07:00
Michael Miller
c3688807d4
Add kind_of aliases for be_a matcher
2020-01-04 10:08:01 -07:00
Michael Miller
34060ce181
Ensure top-level Crystal types are used
2020-01-04 09:49:28 -07:00
Michael Miller
c4a97230f1
Remove unecessary members provided by ValueMatcher
2020-01-04 09:33:14 -07:00
Michael Miller
4c9d767137
Add missing description arguments
2020-01-04 09:32:56 -07:00
Michael Miller
71740113d5
Allow subject for non-class types
2020-01-02 19:30:46 -07:00
Michael Miller
88ed415191
Bubble up matcher description
...
The last run matcher's description is used if one wasn't provided by the
user.
Only applies to examples that actually run and have expectations.
2020-01-02 19:19:55 -07:00
Michael Miller
d64ecc4192
Store matcher description in MatchData
2020-01-02 19:16:33 -07:00
Michael Miller
00fe913d77
Add predicate method to check for description
2020-01-02 18:43:30 -07:00
Michael Miller
ff2cbcd4c7
Allow test description to be blank
...
Currently defaults to the example's source.
2020-01-02 18:40:25 -07:00
Michael Miller
061028782b
Workaround for what seems to be a Crystal macro bug
...
The syntax:
stub instance.==(other) { true }
effectively becomes:
stub instance.==(other { true })
2020-01-01 21:48:58 -07:00
Michael Miller
8ccc08b472
Fix reflection (verify double) on self arg type
...
There is still an issue with using _ for a placeholder.
2019-12-13 20:25:18 -07:00
Michael Miller
16625cf495
Registry#expect takes a stub
2019-12-13 19:56:43 -07:00
Michael Miller
a38625f8a7
Remove GenericMethodCall
...
This type isn't needed. MethodCall is suitable after moving arguments to
it.
2019-12-13 19:54:06 -07:00
Michael Miller
a6aa00eb38
Fix double default stub with type
2019-12-13 19:17:08 -07:00
Michael Miller
4c9bbbe07b
Formatting
2019-12-08 15:11:23 -07:00
Michael Miller
0ae5cdc9ae
Remove debug
2019-12-08 15:11:08 -07:00
Michael Miller
1a30a56f2a
Better stringified call
2019-12-08 15:10:49 -07:00
Michael Miller
91696d490f
Check if underlying type responds to method
2019-12-08 15:08:13 -07:00
Michael Miller
067c789019
Initial work on type reflection for verifying doubles
2019-12-08 14:52:54 -07:00
Michael Miller
074aff531c
Add "anything" which always returns true when compared against
2019-12-08 14:52:28 -07:00
Michael Miller
07ce835724
VerifyingDouble should be abstract
2019-12-08 14:51:48 -07:00
Michael Miller
8b0f509689
Detect when to use a verifying double
2019-12-08 11:37:08 -07:00
Michael Miller
8197a82ace
Expect stubs not method names
...
Needed for argument syntax:
`expect(dbl).to receive(:foo).with(:bar)`
2019-11-29 09:25:58 -07:00
Michael Miller
c710961be1
Fix returned type inferred to NoReturn
2019-11-29 08:53:36 -07:00
Michael Miller
d6c1169bc3
Fix dumb syntax
2019-11-20 20:40:53 -07:00
Michael Miller
5d84536e1e
Implement and_call_original
2019-11-20 19:17:51 -07:00
Michael Miller
f8563e86c7
Pass along original block
2019-11-20 16:29:06 -07:00
Michael Miller
2dee50f19e
Pass original (and type constraint) to stub via block
2019-11-20 15:43:45 -07:00
Michael Miller
51a47fec98
Remove unused RT parameter
2019-11-20 15:05:04 -07:00
Michael Miller
27acf7bced
Allow receive block syntax
2019-11-19 17:28:00 -07:00
Michael Miller
b062472d98
Revert "Initial support for and_yield"
...
This reverts commit e49bd0d57a
.
Removing support for stubbed yield.
Attempting to yield with different a different arity or argument types causes compilation errors.
I don't see any easy fix for this.
I would rather have no yield support than broken support.
2019-11-17 13:30:09 -07:00
Michael Miller
e49bd0d57a
Initial support for and_yield
2019-11-17 13:12:39 -07:00
Michael Miller
b896a7f1d5
Implement stub that raises
2019-11-17 12:53:18 -07:00
Michael Miller
6e287f864b
Implement returning multiple values
2019-11-17 12:26:02 -07:00
Michael Miller
1a3f663b70
Name is optional for doubles
2019-11-17 10:47:51 -07:00
Michael Miller
a63d3d05a5
Negation for receive matchers
2019-11-17 10:32:37 -07:00
Michael Miller
5da231a5e8
Check expectations for anonymous double
2019-11-17 10:14:03 -07:00
Michael Miller
45fe6217b4
Missing args
2019-11-17 09:42:19 -07:00
Michael Miller
ac9b3ad1fe
Implement expect_any_instance_of
2019-11-16 21:27:18 -07:00
Michael Miller
a15e2a97b1
Allow deferred expectation of multiple stubs
2019-11-16 15:24:23 -07:00
Michael Miller
a8e0f46645
Revert "Coerce operations in match? to booleans"
...
This reverts commit 76c21d447a
.
Should no longer be needed since mocks and doubles should indirectly leak into StandardMatcher types.
2019-11-16 15:15:53 -07:00
Michael Miller
d9d30c57d0
Merge ReceiveArgumentsMatcher and ReceiveMatcher
...
Finally found the issue causing other matchers derived from
StandardMatcher to be "leaked" doubles and mocks indirectly.
The if-condition in ExpectationPartial#to and #to_not caused the matcher
to be given the StandardMatcher type instead of a union type.
This lead to really strange compilation errors and wasted a lot of
hours.
2019-11-16 15:14:38 -07:00
Michael Miller
f0bfd8b6d4
Switch to run-time error for unsupported negation
2019-11-16 13:18:09 -07:00
Michael Miller
201fe614d1
Expect messages on double, but don't stub them
2019-11-16 10:59:13 -07:00
Michael Miller
186fa15a1a
Add method to check for stub
2019-11-16 10:06:11 -07:00
Michael Miller
8dbfb2d6ec
Revert "Allow expected value to receive stub"
...
This reverts commit 6cd410c4c7
.
Should not stub the method.
The end-user needs to do this.
2019-11-16 09:23:45 -07:00
Michael Miller
c9fb4d2d33
Don't run deferred blocks if the test fails
...
This also prevents overriding the test's original error with on that may
occur in the deferred blocks.
2019-11-16 09:06:47 -07:00
Michael Miller
23d8f4b5a6
Formatting
2019-11-16 09:03:24 -07:00
Michael Miller
ca85acefaf
Resolve issue trying to splat union of named tuples
2019-11-16 09:02:57 -07:00
Michael Miller
85531fecf9
Fix truthy values not being strings
2019-11-16 09:01:03 -07:00
Michael Miller
76c21d447a
Coerce operations in match? to booleans
...
The compiler is merging null-doubles with these matchers.
Methods that normally return a boolean instead return the instance
(self).
This causes a return type-mismatch.
There should be a better alternative to this.
2019-11-16 08:49:09 -07:00
Michael Miller
6cd410c4c7
Allow expected value to receive stub
2019-11-16 08:32:13 -07:00
Michael Miller
72e4ac8fe9
Remove unnecessary free variables
2019-11-16 08:17:46 -07:00
Michael Miller
3c94d1f8fd
Workaround for generic argument type issue
2019-11-15 21:18:51 -07:00
Michael Miller
2dc86c05ac
Initial work on deferred have_received check
2019-11-14 19:35:13 -07:00
Michael Miller
98bfed2f83
Expose name and source
2019-11-14 19:17:55 -07:00
Michael Miller
ac3a5c8515
Store GenericArguments
2019-11-14 19:15:51 -07:00
Michael Miller
763c99f338
Formatting
2019-11-14 18:48:43 -07:00
Michael Miller
28ec1062e8
Merge branch 'release/0.9' into dev/mocks-and-doubles
2019-11-14 18:47:25 -07:00
Michael Miller
6b3885af30
Run deferred blocks
2019-11-14 18:41:26 -07:00
Michael Miller
2128184659
Implement defer logic in harness
2019-11-14 18:30:48 -07:00
Michael Miller
173f7bfa13
Add should_eventually and should_never methods
2019-11-14 18:26:24 -07:00
Michael Miller
a80d018ff6
Remove type annotation/requirement
2019-11-14 18:23:45 -07:00
Michael Miller
bd0396c001
Add to_eventually and to_never operations
...
This defines what they should look like.
2019-11-14 18:19:37 -07:00
Michael Miller
b40abe8057
Fix GenericArguments#to_s
2019-11-14 18:06:20 -07:00
Michael Miller
acad88204a
Fix issues with creating anonymous null doubles
2019-11-14 17:55:56 -07:00
Michael Miller
e44f0229d6
Allow stubbing/overriding anonymous double methods
2019-11-14 17:12:27 -07:00
Michael Miller
b9fe1b6a60
Initial code to support anonymous doubles
2019-11-12 21:55:16 -07:00
Michael Miller
b0562981f7
Change double name to string
2019-11-12 21:54:55 -07:00
Michael Miller
38ec44c9ac
Simplify type resolution code
2019-11-12 21:46:33 -07:00
Michael Miller
cb466b4ff5
Display better error when a double isn't found/defined
2019-11-12 21:44:35 -07:00
Michael Miller
87a60cf92a
Split out double macros
2019-11-12 21:21:30 -07:00
Michael Miller
f50e71606e
Make derived double names safer
2019-11-12 21:13:44 -07:00
Michael Miller
94e210c306
Implement null doubles
2019-11-11 23:40:08 -07:00
Michael Miller
48ea53c2f5
Formatting
2019-11-11 23:30:36 -07:00
Michael Miller
c3cba6962c
Get stubs on class methods (self.) working
2019-11-11 23:30:30 -07:00
Michael Miller
233e9573de
Placeholders for delayed message expectation
2019-11-11 22:36:29 -07:00
Michael Miller
20f68e956d
Add receive_messages macro to stub multiple methods
2019-11-11 22:27:53 -07:00
Michael Miller
9c161a07ff
Support for canned responses in double creation
2019-11-11 22:17:37 -07:00
Michael Miller
73e3f8fd66
Raise on non-defined methods
2019-11-11 22:11:58 -07:00
Michael Miller
925af7908b
Raise UnexpectedMessageError
2019-11-11 22:08:36 -07:00
Michael Miller
18b3879dce
Treat symbols and non-symbols the same
2019-11-11 20:59:33 -07:00
Michael Miller
fd2c6d3d8c
Remove reference to test
...
Disallows group context values being used within double definitions.
This had an adverse effect where context values could be called on the
double (dbl.foo).
2019-11-11 20:59:12 -07:00
Michael Miller
96aae8f6d5
Use harness variable
2019-11-10 13:49:10 -07:00
Michael Miller
6c0693f2a4
Add default stubs from parent contexts
2019-11-10 13:22:18 -07:00
Michael Miller
d2e27d1e6e
Pass test context to registry
2019-11-10 13:08:43 -07:00
Michael Miller
2bc4f71edb
Add stubs in reverse order
2019-11-10 13:04:28 -07:00
Michael Miller
4fea5ea435
Add ability to define default stub for mocks
2019-11-10 12:49:36 -07:00
Michael Miller
eb1a99b3ab
Fix deque creation
2019-11-10 12:49:24 -07:00
Michael Miller
14876a8e9a
Add default stubs to TestContext
...
Pass default stubs into mocks registry on example startup.
2019-11-10 12:35:03 -07:00
Michael Miller
a2b72eaa36
Implement allow_any_instance_of
2019-11-10 09:46:23 -07:00
Michael Miller
f816a64770
Resolve issue with harness trying to be used outside of test
2019-11-10 07:27:59 -07:00
Michael Miller
11ea7bf2ce
Move mock containment to harness
2019-11-09 23:22:21 -07:00
Michael Miller
e4aae1f60a
Change Registry to a class
2019-11-09 23:05:22 -07:00
Michael Miller
e0d12e9d0d
Use class name instead of hash of type
...
Hash of type could collide, though unlikely.
2019-11-09 22:32:49 -07:00
Michael Miller
0471794814
Store stubs in reverse order
2019-11-09 22:13:02 -07:00
Michael Miller
17695d35cf
Fix cast to nil when nil is expected
...
Resolves `TypeCastError: The return type of stub #... : Nil at ...:##
doesn't match the expected type Nil`
2019-11-09 21:30:59 -07:00
Michael Miller
e9f7e65ac9
Add mock registry prep
2019-11-09 10:49:29 -07:00
Michael Miller
74eb4fc11a
Reset stubs after each test
2019-11-09 10:39:02 -07:00
Michael Miller
c03808dfce
Handle super vs previous_def
2019-11-09 09:45:57 -07:00
Michael Miller
66dc6bf098
Uncomment predicate matcher
2019-11-09 09:38:11 -07:00
Michael Miller
48363951c2
Update receive matchers to use registry
2019-11-09 09:23:01 -07:00
Michael Miller
9e8286f892
Move double info to registry
2019-11-09 09:18:34 -07:00
Michael Miller
5a072301af
Don't require registration
2019-11-09 09:15:41 -07:00
Michael Miller
fc0b46caca
Use Registry for storing stubs
2019-11-09 09:08:09 -07:00
Michael Miller
aa33acd14e
Anything can be passed to allow()
2019-11-09 09:07:54 -07:00
Michael Miller
8262bb0316
Rename OpenMock to Allow
2019-11-09 09:05:17 -07:00
Michael Miller
0698ed655d
Switch to using Registry for mocks and fix various issues
2019-11-09 09:03:36 -07:00
Michael Miller
8c2f8d973b
Don't embed mock info in type
...
This can cause problems. Need to use a registry approach.
2019-11-09 09:03:07 -07:00