-
-
Notifications
You must be signed in to change notification settings - Fork 397
/
satisfy.feature
33 lines (27 loc) · 1.09 KB
/
satisfy.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Feature: satisfy matcher
The satisfy matcher is extremely flexible and can handle almost anything
you want to specify. It passes if the block you provide returns true:
```ruby
10.should satisfy { |v| v % 5 == 0 }
7.should_not satisfy { |v| v % 5 == 0 }
```
This flexibility comes at a cost, however: the failure message
("expected [actual] to satisfy block") is not very descriptive
or helpful. You will usually be better served by using one of
the other built-in matchers, or writing a custom matcher.
Scenario: basic usage
Given a file named "satisfy_matcher_spec.rb" with:
"""ruby
describe 10 do
it { should satisfy { |v| v > 5 } }
it { should_not satisfy { |v| v > 15 } }
# deliberate failures
it { should_not satisfy { |v| v > 5 } }
it { should satisfy { |v| v > 15 } }
end
"""
When I run `rspec satisfy_matcher_spec.rb`
Then the output should contain all of these:
| 4 examples, 2 failures |
| expected 10 not to satisfy block |
| expected 10 to satisfy block |