Commit Graph

217 Commits

Author SHA1 Message Date
Michael Miller c48467f783 Slightly better wording and naming 2018-10-19 18:50:21 -06:00
Michael Miller 36071fcdbf Sanity check on expectations 2018-10-19 18:20:42 -06:00
Michael Miller 67e192edc6 Implement ExpectationResults specs and fix typo 2018-10-19 16:27:59 -06:00
Michael Miller 703a791f78 Formatting changes 2018-10-19 14:02:27 -06:00
Michael Miller 6e012da766 Add GitLab CI config 2018-10-19 14:00:08 -06:00
Michael Miller 1064444f15 DRY up code by adding expectation helper methods 2018-10-19 13:54:32 -06:00
Michael Miller 440a2c6643 Structure for ExpectationResults spec 2018-10-19 13:28:44 -06:00
Michael Miller 0892a073fe Change Result to a class
This is to get around a segfault.
I'm unable to reproduce this in a simpler example at this time.
However, this can be worked around by changing from a struct to a class.

Relevant backtrace:

Invalid memory access (signal 11) at address 0x4
[0x4829f6] *CallStack::print_backtrace:Int32 +118
[0x46de7d] __crystal_sigfault_handler +61
[0x7fe6ec64b390] ???
[0x486df5] *String#==<String>:Bool +37
[0x509ac4] *Spectator::Expectations::ValueExpectationPartial(Int32) +52
[0x50a52e] *Spectator::Expectations::ValueExpectation(Int32, Int32) +94
[0x50acb2] *Spectator::Expectations::Expectation::Result +210
[0x4fcd9b] *Spectator::Expectations::ExpectationResults +635
[0x50c9eb]*Spec::ContainExpectation(Spectator::Expectations::Expectation::Result)+43
[0x4fcaea] *Spectator::Expectations::ExpectationResults +138
...
2018-10-19 13:04:51 -06:00
Michael Miller 7d08d38659 Add specs for ExpectationReporter
There is currently a segfault with this test code.
The issue will be addressed in the next commit.
2018-10-19 13:03:13 -06:00
Michael Miller 15ac60b17b Remove unecessary #to_s calls 2018-10-19 11:01:22 -06:00
Michael Miller 7f4690b042 Secondary initializer for missing label
Label is set to actual/expected stringified value if omitted.
2018-10-18 21:52:00 -06:00
Michael Miller 9a77f8b7fd Add specs for value expectation
Fix bug in expectation result actual message.
2018-10-18 17:54:43 -06:00
Michael Miller bc66016c42 Add specs for equality matcher 2018-10-18 13:46:12 -06:00
Michael Miller 3196b724bf Some initial specs for expectation partials 2018-10-15 15:45:32 -06:00
Michael Miller df36331132 Workaround for Crystal compiler bug
See: https://github.com/crystal-lang/crystal/issues/4225
If there are no concrete implementations of a class, an "undefined
method" error is given for abstract methods.
2018-10-15 15:27:05 -06:00
Michael Miller c77a85c97a Flag to disable running tests
This is needed for testing Spectator.
2018-10-15 00:32:29 -06:00
Michael Miller cd86687dfb Handle negative indices 2018-10-14 19:33:38 -06:00
Michael Miller 155e9ec81a Store example count instead of recalculating 2018-10-14 19:08:07 -06:00
Michael Miller bcb68a5856 Implement example lookup by index
This will be used later for executing tests in random order.
2018-10-14 19:06:02 -06:00
Michael Miller eade6873e4 Implement ExampleComponent#example_count 2018-10-14 18:37:54 -06:00
Michael Miller 467afd053c Implement iterator version of ExampleGroup#each 2018-10-14 18:29:01 -06:00
Michael Miller 1a2cba79fc Parent group can't be nil for nested group 2018-10-14 18:00:55 -06:00
Michael Miller ab146c88c2 Bit of code cleanup 2018-10-14 17:43:33 -06:00
Michael Miller bff6d463df Root group builder should not inherit from nested 2018-10-14 17:40:37 -06:00
Michael Miller 30a45a24d3 Restructure to use a composite design pattern
Examples and example groups now have a common ancestor.
2018-10-14 17:10:12 -06:00
Michael Miller 2070d7816b Root example group specialization 2018-10-14 14:28:05 -06:00
Michael Miller 3facf3af9d Change "description" to "what" for consistency 2018-10-14 11:50:08 -06:00
Michael Miller 68412daec0 Remove unused code 2018-10-14 01:02:52 -06:00
Michael Miller 77f631205e Break apart runnable example and document it 2018-10-11 10:16:48 -06:00
Michael Miller 34dce28663 Initial documentation and rework on runnable example 2018-10-10 16:57:43 -06:00
Michael Miller 81dce3df9a Cleanup and document some example classes 2018-10-10 13:05:17 -06:00
Michael Miller 53831ab36a Fix hook flags being nullable 2018-10-10 13:03:47 -06:00
Michael Miller 3e78f48d39 Pending examples weren't marked as finished 2018-10-09 14:53:51 -06:00
Michael Miller d8223297af Treat harness more like a facade 2018-10-09 14:41:22 -06:00
Michael Miller f5317ecbd3 Rig up the harness 2018-10-09 14:25:52 -06:00
Michael Miller bfb133f44d Create example harness 2018-10-09 14:25:39 -06:00
Michael Miller 7b8f47f327 Implement expectation results 2018-10-08 11:25:22 -06:00
Michael Miller 297701c463 Merge branch 'master' of gitlab.com:arctic-fox/spectator 2018-10-08 10:36:27 -06:00
Michael Miller c27f72c83e Add enum for example status 2018-10-07 16:13:17 -06:00
Michael Miller 64a233a9e1 Rename ExpectationRegistry to ExpectationReporter
Some initial implementation for the class.
2018-10-07 13:46:51 -06:00
Michael Miller e14babc014 ExpectationFailed exception takes a result 2018-10-07 13:45:36 -06:00
Michael Miller 73a0d51c1b Rename message methods and add #failure? 2018-10-07 13:05:32 -06:00
Michael Miller 7277b3caaf Display actual value if label is empty 2018-10-07 12:49:10 -06:00
Michael Miller 38da6615bf Documentation for expectations and matchers 2018-10-07 12:42:09 -06:00
Michael Miller a01ef9a4b7 Up-cast to get around type error 2018-10-07 02:07:25 -06:00
Michael Miller d98bc05b88 Switch to structs to reduce memory allocations 2018-10-06 10:09:39 -06:00
Michael Miller f11031f113 Upcast to fix type error 2018-10-06 09:58:58 -06:00
Michael Miller 79886e9efb More structure around exceptions and matching 2018-10-05 16:30:19 -06:00
Michael Miller 4c2f6157af Define some Expectation methods 2018-10-01 20:34:26 -06:00
Michael Miller 3035273e9a Rework how expectations and matchers work together 2018-09-28 11:47:42 -06:00