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
Michael Miller
4948fe0c6f
Short-hand syntax for blocks with yield
2018-09-27 18:49:01 -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
b9abdb86ff
Use actual value if label is empty
...
This will show a value instead of nothing if the should-syntax is used.
2018-09-27 16:28:47 -06:00
Michael Miller
77b4c71c2a
Reduce nesting by collapsing modules with ::
2018-09-27 16:20:55 -06:00