Commit Graph

2231 Commits

Author SHA1 Message Date
Michael Miller c98edcec5d
Add methods for recording calls to stubs 2022-06-08 08:18:31 -06:00
Michael Miller c70e4792af
Rename _spectator_calls to _spectator_invocations 2022-06-08 08:18:16 -06:00
Michael Miller cb93f4eee0
Document mock modules 2022-06-04 18:21:08 -06:00
Michael Miller 41dea9c985
Add missing require for spec_helper 2022-06-01 23:47:13 -06:00
Michael Miller 4de04b2a91
Merge branch 'master' into mock-redesign 2022-06-01 23:45:43 -06:00
Michael Miller 989e5db389
Remove mock-specific changes 2022-06-01 23:44:52 -06:00
Michael Miller 69a89daeb8
Run smoke test for nightly 2022-06-01 23:42:37 -06:00
Michael Miller 712edf20c1
Split spec into multiple jobs 2022-06-01 23:41:39 -06:00
Michael Miller 96c7c84275
Test mocked structs 2022-06-01 23:37:54 -06:00
Michael Miller d289cbff29
Add tests for abstract class mock 2022-06-01 23:13:16 -06:00
Michael Miller 0a710c831a
Test context handling with mocks 2022-06-01 22:23:49 -06:00
Michael Miller effad28559
Better compiler error for wrong argument type passed to mock 2022-06-01 22:23:39 -06:00
Michael Miller 8fbcbe8b73
Test mock scope 2022-06-01 22:11:32 -06:00
Michael Miller 3f4216a271
Allow passing default value stubs to mock initialization 2022-06-01 22:04:18 -06:00
Michael Miller 225553127d
More mock tests 2022-06-01 17:56:09 -06:00
Michael Miller 934c92aed1
More mock DSL tests 2022-05-29 00:28:38 -06:00
Michael Miller b6083f0e09
Fix passing along mock body 2022-05-28 10:10:20 -06:00
Michael Miller 03754321b5
Fix existing mock DSL macros
Initial code for mock DSL.
2022-05-28 09:18:49 -06:00
Michael Miller 6060b3cd10
Test type restrictions and ensure original methods aren't called 2022-05-28 09:18:03 -06:00
Michael Miller fa89fa5550
Remove problematic test and use be_a 2022-05-27 21:45:01 -06:00
Michael Miller 959139b1ee
Use be_a instead of be_lt for types
Remove problematic `be_lt(::Reference)`
This appears to drastically increase compilation time and resources.
2022-05-25 18:00:42 -06:00
Michael Miller d7c1c675ff
Add missing require for spec_helper 2022-05-25 17:28:11 -06:00
Michael Miller 03f78e3fc1
Fix path to mock specs 2022-05-25 17:27:02 -06:00
Michael Miller 670dd7f062
Run smoke test for nightly 2022-05-25 17:20:57 -06:00
Michael Miller ce7feb8f0f
Split spec into multiple jobs 2022-05-25 17:18:08 -06:00
Michael Miller d0e5f6ca35
Workaround struct pass by value with `let` 2022-05-24 19:41:16 -06:00
Michael Miller 1f6417bca5
Skip test producing Crystal compiler bug 2022-05-24 19:40:48 -06:00
Michael Miller 9f5b5d8576
Add tests for mock of abstract struct
Compilation causes a compiler bug in 1.4.1
BUG: {{ @type > T }} (Crystal::MacroExpression) at /usr/share/crystal/src/class.cr:89:5 should have been expanded (Exception)
2022-05-24 19:30:42 -06:00
Michael Miller be69018591
Test that a class is defined 2022-05-24 19:29:42 -06:00
Michael Miller 5132ce7329
Don't define method body for abstract stub method
Test inheriting an abstract class with mocks.
2022-05-24 19:25:22 -06:00
Michael Miller ddaed636c4
Remove type resolution
The `resolve` macro method operates in the scope of `@type`, not where the macro method was called.
This is why types could not be found within the spec.
Change `define_subclass` to `define_subtype` and accept base type keyword.
2022-05-18 20:56:04 -06:00
Michael Miller 4f0e2f6e46
Fix clearing stubs for mocks
Prevent reverting initial defaults set by mock macro.
2022-05-15 16:21:05 -06:00
Michael Miller a39b27387c
Add delete method to clear stubs for a mock 2022-05-15 16:19:55 -06:00
Michael Miller 847fd38534
Test mock names 2022-05-15 15:59:08 -06:00
Michael Miller c98442e0ed
Add functionality to clear stubs 2022-05-15 15:56:32 -06:00
Michael Miller fdac99d122
Rename thing to mock 2022-05-15 13:44:45 -06:00
Michael Miller 37c6db250d
Add ValueMockRegistry
Support injecting mock functionality into concrete structs (value types).
2022-05-15 12:34:50 -06:00
Michael Miller 51f133eb61
Ensure mocking doesn't change the memory
This can be important for serialization.
Cleanup names.
2022-05-15 11:27:58 -06:00
Michael Miller ac03bd439b
Address Ameba issues 2022-05-15 11:06:00 -06:00
Michael Miller 1adcf74c3f
Fix stub_type when used on a sub-type
previous_def should only be used if the type being stubbed matches the type stub methods are defined in.
Re-enable tests for define_subclass mocking.
2022-05-15 10:59:44 -06:00
Michael Miller 86b49dc20e
Add mock registry fetch method
Solves the issue of pre-populating a mock with stubs.
2022-05-15 00:36:29 -06:00
Michael Miller 7923eb3ad0
Fix detection of nullable return type from stubbed method 2022-05-15 00:19:03 -06:00
Michael Miller 380d721fad
Add ReferenceMockRegistry 2022-05-14 23:31:57 -06:00
Michael Miller 0704fd2a48
Adjust evaluation order of change matcher expressions
Handles reference types better and matches RSpec more closely.
2022-05-14 23:30:15 -06:00
Michael Miller 739629ef9d
Reintroduce nil type check for stub value cast 2022-04-30 12:10:02 -06:00
Michael Miller 9817b2948e
Add mock inject macro
Debugging some type resolution issues.
2022-04-30 11:40:54 -06:00
Michael Miller 95282e7510
Combine type stubbing macros
Prevent redefining stubbed methods multiple times.
2022-04-30 11:40:17 -06:00
Michael Miller 8d14be6c67
Move spectator stub retrieval to abstract getter 2022-04-28 23:04:22 -06:00
Michael Miller d74bc76687
Verify that initial stubs can be overridden 2022-04-28 22:32:34 -06:00
Michael Miller 978e6c3625
Cleanup and docs 2022-04-28 22:22:07 -06:00