Commit graph

1650 commits

Author SHA1 Message Date
Michael Miller
db89a99562 Add specs for ExampleConditions 2019-01-17 14:14:10 -07:00
Michael Miller
d9363fc8a7 Update existing specs to support conditions 2019-01-11 10:09:40 -07:00
Michael Miller
38202ff605 Initial addition of pre- and post-conditions 2019-01-09 16:17:33 -07:00
Michael Miller
6caf5353e0 Update README
One-liner and #given DSL are implemented.
2019-01-09 15:10:57 -07:00
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
950fcd250c Add other syntaxes for #expect method
Can now check multiple values in the same #expect call.
Can use method short-hand syntax (&.foo) in #expect call.
2019-01-09 13:59:42 -07:00
Michael Miller
d3bf5eb4b1 Add short-hand #is and #is_not macros
These can be used for the one-liner "it" syntax.
2019-01-09 11:28:31 -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
7f99dcc06f Add item for pre- and post-conditions 2019-01-01 18:00:24 -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
aee3ead578 Revert "Pass current example to before_each and after_each hooks"
This reverts commit b5edb1e9f3.
2019-01-01 17:48:07 -07:00
Michael Miller
191eb02cbe Add dummy instance values 2019-01-01 17:06:24 -07:00
Michael Miller
b5edb1e9f3 Pass current example to before_each and after_each hooks 2019-01-01 16:56:23 -07:00
Michael Miller
abf7c8831c Add getter for wrapped instance 2019-01-01 16:40:04 -07:00
Michael Miller
b53e1b60d8 Add BaseExampleHooks class
This is the first part in enabling before_each and after_each hooks to 
access the example code's scope.
2019-01-01 16:33:07 -07:00
Michael Miller
e0273d660c Display cause of errors 2018-12-27 15:47:29 -07:00
Michael Miller
c0be260f98 Ability to limit number of items sampled 2018-12-27 15:11:28 -07:00
Michael Miller
18fe2b7aa8 Update README regarding sample and given 2018-12-27 11:16:50 -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
3573845dc2 Finally implement pending test 2018-12-13 14:53:04 -07:00
Michael Miller
77efdd84be Use tuples instead of parallel arrays 2018-12-13 14:48:20 -07:00
Michael Miller
5a87753c7d Add test for SampleValues#each 2018-12-13 14:41:22 -07:00
Michael Miller
62549aae88 Functionality to retrieve all sample values 2018-12-13 14:30:11 -07:00
Michael Miller
c73af72c7f Move formatter to config 2018-12-13 14:16:49 -07:00
Michael Miller
23368f6183 Structure for applying configuration 2018-12-13 13:50:59 -07:00
Michael Miller
9527427b45 Move error message output to another method 2018-12-12 15:33:54 -07:00
Michael Miller
38ec35dd29 Have the DSL builder produce a test suite 2018-12-12 15:27:40 -07:00
Michael Miller
6c5da5a703 Shuffle code around for runner 2018-12-12 15:22:56 -07:00
Michael Miller
c29748ede5 Restructuring how the test suite is driven 2018-12-12 11:48:08 -07:00
Michael Miller
6f5b03dc0f Add top-level namespace docs 2018-12-10 16:08:25 -07:00
Michael Miller
4e0c821b8f Add FinishedResult intermediary class 2018-12-10 14:07:14 -07:00
Michael Miller
9e004324c9 Remove shared elapsed time
Since PendingResult always returns zero, it's not necessary to store it.
2018-12-10 11:16:43 -07:00
Michael Miller
56e8f8978b Detect errors in around_each hooks 2018-12-07 23:28:30 -07:00
Michael Miller
ef12e3967b Add checks for cause of hook error
Fix some tests that had copy/paste mistakes.
2018-12-07 23:07:04 -07:00
Michael Miller
ef490c78b0 Fix test 2018-12-07 23:01:08 -07:00
Michael Miller
4e57f6adca Don't run after hooks if an error occurs 2018-12-07 23:01:02 -07:00
Michael Miller
4222603fea Don't need reference to result anymore 2018-12-07 22:57:31 -07:00
Michael Miller
d710929479 Fix collateral damage from rev aeebbaa 2018-12-07 22:53:17 -07:00
Michael Miller
aeebbaa5b6 Raise error instead of failing test
If an error occurs in any hooks, raise it instead of failing the test.
2018-12-07 22:43:26 -07:00
Michael Miller
22f32eb03e Fix tests that had issues setting children 2018-12-07 22:42:52 -07:00
Michael Miller
2aa7a75eea Implement remaining hook error tests 2018-12-07 22:05:23 -07:00
Michael Miller
99de2335aa More tests for exceptions in hooks 2018-12-07 17:02:53 -07:00
Michael Miller
e87f0b5e64 Ability to pass custom hooks to SpyExample 2018-12-07 17:02:07 -07:00
Michael Miller
f20a0e2241 Formatting 2018-12-05 20:27:31 -07:00
Michael Miller
2ce599d6a4 Some initial work on runnable example tests 2018-12-05 20:25:11 -07:00
Michael Miller
06230f128d Add example for producing errors 2018-12-05 20:25:11 -07:00