Commit Graph

284 Commits

Author SHA1 Message Date
Michael Miller 5b79e76b44 Use builder to get example group 2018-09-23 13:40:24 -06:00
Michael Miller 037fe604ea Example group builder classes should build groups
It's implied in their name.
2018-09-23 13:40:16 -06:00
Michael Miller d551cf6e1b Add missing GivenExampleGroupBuilder class 2018-09-23 12:27:21 -06:00
Michael Miller 6bf07e3967 Collection for #given is now an array of ValueWrapper 2018-09-23 12:27:08 -06:00
Michael Miller faf3bef05c Fix typo 2018-09-23 12:21:10 -06:00
Michael Miller fc1c0351cd Must use class variables 2018-09-23 12:19:29 -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 09184f4a2a Group builder needs "what" as first arg 2018-09-23 12:15:53 -06:00
Michael Miller 0999cb2dbc Use fully-qualified names 2018-09-23 12:05:19 -06:00
Michael Miller 9109fc30fd Can pass types around (somewhat) at runtime
No need for extra factory classes.
2018-09-23 12:03:52 -06:00
Michael Miller 87d9cc438f Move code for root back to Spectator#describe
There seems to be a problem using def in block.
This broke helper methods and gives the error: `can't declare def 
dynamically`.
2018-09-23 12:02:51 -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 ff382ba372 Idea for new hook types 2018-09-22 12:35:44 -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 110a2b2d2a Quick exception handler for framework
This should be improved later.
2018-09-21 15:23:01 -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 cba0abc7f1 Fixes for enumerating examples 2018-09-20 18:41:36 -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 007572f0b8 Get rid of #add_examples
Added #example_count method to help with array sizing.
2018-09-19 23:13:43 -06:00
Michael Miller 8b8981494d Trying to get exaples to map to their given values 2018-09-19 23:00:17 -06:00
Michael Miller aaf973b8cf Concat #all_examples instead of recursive #add_examples 2018-09-19 22:28:20 -06:00
Michael Miller 4d601281f6 Delay example creation by using factories
The #given block functionality specifically needs this to create 
multiple examples.
2018-09-19 21:58:32 -06:00
Michael Miller bb7f036a82 Make Example#group abstract
Instead of passing parent group as an argument, define the group method 
in the exapmle class created by the #it macro.
2018-09-19 21:50:51 -06:00
Michael Miller 0f7640411f Use symbols instead of strings for hash lookups 2018-09-19 21:06:10 -06:00
Michael Miller a28f512ae4 Some code for repeating examples in given blocks 2018-09-19 20:49:01 -06:00
Michael Miller 830aa7b43a Structural code for enumerating given value sets 2018-09-19 20:00:26 -06:00
Michael Miller 2be9d65997 Add examples to group children 2018-09-19 19:32:59 -06:00
Michael Miller 06630e87d3 Rework how children are handled
Uses a loose version of the composite pattern.
This is to keep examples in the order they were declared.
2018-09-19 19:31:50 -06:00
Michael Miller d679c356fd Move conditional into context macro 2018-09-19 19:29:33 -06:00
Michael Miller fe81341e1a Rename MAPPING to GROUPS - better name 2018-09-19 18:58:44 -06:00
Michael Miller 41c0d9abc7 Initial changes for DSL refactor
No examples are picked up right now.
2018-09-19 18:53:09 -06:00
Michael Miller fa73bf3a60 Hide method to infer type of first in collection in given macro
This was a bit of a hack.
2018-09-15 23:38:07 -06:00
Michael Miller 80fbe89b4c Track children in DSL 2018-09-15 16:58:59 -06:00
Michael Miller a06ea6088c Shorten GroupDefinitions to Definitions 2018-09-15 16:53:28 -06:00
Michael Miller 196187a98a Add human-friendly formatting to runtime 2018-09-15 15:45:17 -06:00
Michael Miller d1527d8c0d Change char for pending to * 2018-09-15 14:16:10 -06:00
Michael Miller fd547c5814 Use Time::Span.zero instead of constructor with 0 nanoseconds 2018-09-15 14:10:59 -06:00
Michael Miller caeab6c338 Cleanup color code 2018-09-15 14:04:17 -06:00
Michael Miller 625262b6d5 Colorize result string based on outcome 2018-09-15 13:51:28 -06:00
Michael Miller 8e1a2e114b Display summary from default formatter 2018-09-15 13:51:07 -06:00
Michael Miller b329afffb6 Rename Report to TestResults 2018-09-15 13:31:55 -06:00
Michael Miller ac53394b8d Additional methods to describe result 2018-09-15 13:30:07 -06:00
Michael Miller 5819e0201e Shorten names of result classes 2018-09-15 13:25:11 -06:00
Michael Miller 6ca4d8d2a6 Move matchers DSL into their own module
Moves the #eq method out of the global namespace.
2018-09-15 11:58:43 -06:00
Michael Miller 1ea06998e7 Move #expect from global namespace to example DSL 2018-09-15 11:30:45 -06:00
Michael Miller 967797428c Move DSL to its own directory 2018-09-15 11:21:23 -06:00
Michael Miller b5cdda4af3 Shorten ExpectationFailedError to ExpectationFailed 2018-09-15 11:05:11 -06:00