Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joker1007/rspec-power_assert
Power Assert for RSpec
https://github.com/joker1007/rspec-power_assert
Last synced: 2 days ago
JSON representation
Power Assert for RSpec
- Host: GitHub
- URL: https://github.com/joker1007/rspec-power_assert
- Owner: joker1007
- License: mit
- Created: 2014-09-27T10:49:19.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-07T12:26:08.000Z (over 1 year ago)
- Last Synced: 2024-10-31T12:55:14.066Z (8 days ago)
- Language: Ruby
- Homepage:
- Size: 33.2 KB
- Stars: 85
- Watchers: 7
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# RSpec::PowerAssert
[![Gem Version](https://badge.fury.io/rb/rspec-power_assert.svg)](http://badge.fury.io/rb/rspec-power_assert)## Support
- RSpec 2.14 or later
- If you use ruby-3.2.x or later, please use rspec-power_assert-1.2.0 or later## Installation
Add this line to your application's Gemfile:
```ruby
gem 'rspec-power_assert'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-power_assert
## Usage
First, add require option to `.rspec`
```
-r rspec-power_assert
```Use `ExampleGroup.it_is_asserted_by` or `ExampleGroup#is_asserted_by`
```ruby
describe Object do
it_is_asserted_by { a == b }it do
is_asserted_by { a == b }
end
end
```## Config
### verbose_successful_report
```ruby
RSpec::PowerAssert.verbose_successful_report = true
```If it set true, Successful Example reports with `power_assert` outputs.
If it set false, Successful Example reports without `power_assert` outputs.Default is *true*.
### example_assertion_alias
```ruby
# enable `assert` method in Example block
RSpec::PowerAssert.example_assertion_alias :assert
```### example_group_assertion_alias
```ruby
# enable `assert` method in ExampleGroup block
RSpec::PowerAssert.example_group_assertion_alias :assert
```## Sample
### spec sample
```ruby
describe RSpec::PowerAssert do
describe Array do
describe "#map" do
let(:array) { [1, 2, 3] }
subject { %w(a b c) }before do
@array = [1, 2, 3]
endit do
is_asserted_by { subject.map(&:upcase) == array }
endit do
is_asserted_by {
subject.map(&:upcase) == array
}
endit do
is_asserted_by { subject.map(&:upcase) == %w(A B C) }
endit do
is_asserted_by {
subject.map(&:upcase) == %w(A B C)
}
endit do
upcased = subject.map(&:upcase)
upcased.pop
is_asserted_by { upcased == @array }
endit "should transform array" do
is_expected.to eq %w(a b c)
is_asserted_by { subject.map(&:upcase) == %w(A B C) }
endit "should transform array (failed)" do
is_asserted_by { subject.map(&:upcase) == %w(A B) }
endit_is_asserted_by { subject.map(&:upcase) == %w(A B C) }
it_is_asserted_by { subject.map(&:upcase) == %w(A B) }
it_is_asserted_by do
subject.map(&:upcase) == %w(A B C)
endit_is_asserted_by "succ each element" do
subject.map(&:succ) == ["b", "c", "e"] + @array
end
end
end
end
```### output sample
```
RSpec::PowerAssert
Array
#map
example at ./spec/rspec/power_assert_spec.rb:13 (FAILED - 1)
example at ./spec/rspec/power_assert_spec.rb:17 (FAILED - 2)
should
be asserted by { subject.map(&:upcase) == %w(A B C) }
| | |
| | true
| ["A", "B", "C"]
["a", "b", "c"]
should
be asserted by { subject.map(&:upcase) == %w(A B C) }
| | |
| | true
| ["A", "B", "C"]
["a", "b", "c"]
example at ./spec/rspec/power_assert_spec.rb:33 (FAILED - 3)
should transform array
should transform array (failed) (FAILED - 4)
should
be asserted by { subject.map(&:upcase) == %w(A B C) }
| | |
| | true
| ["A", "B", "C"]
["a", "b", "c"]
example at ./spec/rspec/power_assert_spec.rb:50 (FAILED - 5)
should
be asserted by { subject.map(&:upcase) == %w(A B C) }
| | |
| | true
| ["A", "B", "C"]
["a", "b", "c"]
succ each element (FAILED - 6)Failures:
1) RSpec::PowerAssert Array#map
Failure/Error: is_asserted_by { subject.map(&:upcase) == array }
is_asserted_by { subject.map(&:upcase) == array }
| | | |
| | | [1, 2, 3]
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:31:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:14:in `block (4 levels) in '2) RSpec::PowerAssert Array#map
Failure/Error: is_asserted_by {
subject.map(&:upcase) == array
| | | |
| | | [1, 2, 3]
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:31:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:18:in `block (4 levels) in '3) RSpec::PowerAssert Array#map
Failure/Error: is_asserted_by { upcased == @array }
is_asserted_by { upcased == @array }
| | |
| | [1, 2, 3]
| false
["A", "B"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:31:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:36:in `block (4 levels) in '4) RSpec::PowerAssert Array#map should transform array (failed)
Failure/Error: is_asserted_by { subject.map(&:upcase) == %w(A B) }
is_asserted_by { subject.map(&:upcase) == %w(A B) }
| | |
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:31:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:45:in `block (4 levels) in '5) RSpec::PowerAssert Array#map
Failure/Error: it_is_asserted_by { subject.map(&:upcase) == %w(A B) }
it_is_asserted_by { subject.map(&:upcase) == %w(A B) }
| | |
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:44:in `evaluate_example'
# ./spec/rspec/power_assert_spec.rb:50:in `block in it_is_asserted_by'6) RSpec::PowerAssert Array#map succ each element
Failure/Error: it_is_asserted_by "succ each element" do
subject.map(&:succ) == ["b", "c", "e"] + @array
| | | |
| | | [1, 2, 3]
| | false
| ["b", "c", "d"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:57:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:44:in `evaluate_example'
# ./spec/rspec/power_assert_spec.rb:56:in `block in it_is_asserted_by'Finished in 0.01725 seconds (files took 0.12235 seconds to load)
11 examples, 6 failuresFailed examples:
rspec ./spec/rspec/power_assert_spec.rb:13 # RSpec::PowerAssert Array#map
rspec ./spec/rspec/power_assert_spec.rb:17 # RSpec::PowerAssert Array#map
rspec ./spec/rspec/power_assert_spec.rb:33 # RSpec::PowerAssert Array#map
rspec ./spec/rspec/power_assert_spec.rb:44 # RSpec::PowerAssert Array#map should transform array (failed)
rspec ./spec/rspec/power_assert_spec.rb:50 # RSpec::PowerAssert Array#map
rspec ./spec/rspec/power_assert_spec.rb:56 # RSpec::PowerAssert Array#map succ each element
```On RSpec-3.3 or later, support `aggregate_failures`
(Thanks sue445)```
2) RSpec::PowerAssert Array#map When use aggregate_failures should be called be is_asserted_by with 3 times
Got 2 failures from failure aggregation block.
# ./spec/rspec/power_assert_spec.rb:81:in `block (5 levels) in '2.1) Failure/Error: is_asserted_by { subject.map(&:upcase) == %w(a b c) }
is_asserted_by { subject.map(&:upcase) == %w(a b c) }
| | |
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:81:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:50:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:82:in `block (6 levels) in '2.2) Failure/Error: is_asserted_by { subject.map(&:upcase) == %w(A B C D) }
is_asserted_by { subject.map(&:upcase) == %w(A B C D) }
| | |
| | false
| ["A", "B", "C"]
["a", "b", "c"]
# ./lib/rspec/power_assert.rb:81:in `handle_result_and_message'
# ./lib/rspec/power_assert.rb:50:in `is_asserted_by'
# ./spec/rspec/power_assert_spec.rb:84:in `block (6 levels) in 'Finished in 0.02937 seconds (files took 0.19416 seconds to load)
2 examples, 2 failures
```## Contributing
1. Fork it ( https://github.com/joker1007/rspec-power_assert/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request