Michael Miller
ab90f946d9
Allow "it" syntax in #given block
2019-01-09 15:08:01 -07:00
Michael Miller
17039d44f0
Initial implementation of #given macro
2019-01-09 14:58:10 -07:00
Michael Miller
033f753dca
Initial implementation of one-liner "it" syntax
2019-01-02 13:24:30 -07:00
Michael Miller
0c3b3da2b3
Quickly implement #random_sample
by copy-pasting
...
This should be DRY'd up in the future.
2019-01-02 12:45:46 -07:00
Michael Miller
b7d3648256
Clarify that #let
can use expressions
2019-01-02 11:00:38 -07:00
Michael Miller
e6fd716586
Run around_each hooks in same context as example code
2019-01-01 17:58:54 -07:00
Michael Miller
050251b491
before_each and after_each hooks now run in example scope
...
The entire example hooks class hierarchy is no longer needed.
This is an easier implementation than originally planned.
However, this is probably slower than the other method because each hook
has to cast and check the example instance.
2019-01-01 17:51:55 -07:00
Michael Miller
abf7c8831c
Add getter for wrapped instance
2019-01-01 16:40:04 -07:00
Michael Miller
c0be260f98
Ability to limit number of items sampled
2018-12-27 15:11:28 -07:00
Michael Miller
c1b27bb672
Rename "given" to "sample"
...
This falls in line with the `SampleValues` type.
It also frees up the keyword "given" to be used for something else.
2018-12-27 11:15:44 -07:00
Michael Miller
072055d947
Change test wrapper to a struct
2018-11-17 00:14:14 -07:00
Michael Miller
0e1d87d8d4
Add docs for #it and #pending
2018-11-08 22:40:01 -07:00
Michael Miller
45230f3e67
Add docs for before, after, and around hooks
2018-11-08 13:31:50 -07:00
Michael Miller
cbfd14a88f
Add docs for #subject, #let, and #let!
2018-11-08 11:29:51 -07:00
Michael Miller
e480901cdc
Note about nested #given blocks
...
Remove unused and empty type method.
Crystal syntax doesn't allow methods where a generic type is expected.
2018-11-07 13:03:48 -07:00
Michael Miller
013f799c5e
Remove #include_examples placeholder
...
Will be re-added when it is implemented.
2018-11-07 12:58:47 -07:00
Michael Miller
3abb48fe53
Allow implicit subject to take arbitrary arguments
...
This allows easy construction of the subject when it has an initializer
with parameters.
2018-11-07 12:55:38 -07:00
Michael Miller
4e690e7906
Merge described class and implicit subject macros
...
These macros are only called once.
2018-11-07 12:53:22 -07:00
Michael Miller
665c202848
Removes #it_behaves_like placeholder
...
Will re-add this when it is implemented.
2018-11-07 12:49:10 -07:00
Michael Miller
3571d9463a
Remove #_spectator_given_collection macro
...
It is no longer needed since @type resolution isn't delayed.
2018-11-07 12:47:42 -07:00
Michael Miller
06743a181c
Move collection class out of given module
...
The collection would incorrectly have access to the `given` block's
context,
instead of just the parent context, like it should.
2018-11-07 12:33:49 -07:00
Michael Miller
69905c01f3
Add docs for #given
2018-11-07 12:26:47 -07:00
Michael Miller
bf03cf03ce
Add docs for #describe and #context
2018-11-06 14:05:41 -07:00
Michael Miller
0efaf9fa85
Formatting
2018-11-03 12:14:29 -06:00
Michael Miller
0a218b7e9f
Some initial documentation for StructureDSL
2018-11-03 12:13:53 -06:00
Michael Miller
7c21f1e3eb
Store user-friendly name of given variable
2018-11-02 18:11:46 -06:00
Michael Miller
3facf3af9d
Change "description" to "what" for consistency
2018-10-14 11:50:08 -06:00
Michael Miller
d670d96045
Remove extra assignment operations
2018-09-27 18:47:54 -06:00
Michael Miller
7484b92db9
Formatting
2018-09-27 17:50:50 -06:00
Michael Miller
77b4c71c2a
Reduce nesting by collapsing modules with ::
2018-09-27 16:20:55 -06:00
Michael Miller
dcbca302dc
Fix values being wrapped twice
...
This simplifies some code.
2018-09-23 17:13:30 -06:00
Michael Miller
cf0c438a5d
Abstract away locals to SampleValues
2018-09-23 17:04:06 -06:00
Michael Miller
cddfe5591d
Move ValueWrapper and TypedValueWrapper to Internals
...
Trying to hide from top-level some inner-workings.
2018-09-23 16:23:26 -06:00
Michael Miller
7a6045a1f3
Change #it_behaves_like to a macro
2018-09-23 16:10:07 -06:00
Michael Miller
b3b8efdd59
Mark helper macros private
2018-09-23 16:07:58 -06:00
Michael Miller
70e37eeccf
DRY up DSL
2018-09-23 16:07:03 -06:00
Michael Miller
57c9f2c58e
Copy/paste to reimplement pending examples
2018-09-23 14:53:32 -06:00
Michael Miller
56ae92a25d
Add symbol for getting local from #given
2018-09-23 14:45:36 -06:00
Michael Miller
03a8efd7f8
Create test instance when example is created
...
This exposes errors in the framework
instead of delaying them until the test runs.
2018-09-23 14:39:05 -06:00
Michael Miller
6bf07e3967
Collection for #given is now an array of ValueWrapper
2018-09-23 12:27:08 -06:00
Michael Miller
ab7087649d
Example wrappers need a top-level initializer
...
The default initializer made by the compiler takes no arguments.
Use this one to not create a default initializer.
2018-09-23 12:19:07 -06:00
Michael Miller
ecba0d00ec
Pass group to example initializer
2018-09-23 12:16:38 -06:00
Michael Miller
0999cb2dbc
Use fully-qualified names
2018-09-23 12:05:19 -06:00
Michael Miller
9ba3fc898b
More refatoring
2018-09-22 19:41:56 -06:00
Michael Miller
a1b5533504
Some initial work to cleanup the DSL builder
2018-09-22 15:15:29 -06:00
Michael Miller
a82076e2b7
Remove type from group macros
...
This value is never directly seen,
so it isn't necessary to support it.
2018-09-22 11:38:00 -06:00
Michael Miller
66ca06337d
Fix locals not being passed to child groups
2018-09-21 14:26:09 -06:00
Michael Miller
a9d4acda36
Pass locals to example and test wrapper initializer
...
The #initialize method is defined in each context/given/module
that needs to add a local.
This is an elegant (although possibly confusing) solution.
2018-09-21 14:03:09 -06:00
Michael Miller
39be62c511
Temp disable until I figure out how to reference wrapped example
2018-09-20 18:41:21 -06:00
Michael Miller
8b8981494d
Trying to get exaples to map to their given values
2018-09-19 23:00:17 -06:00