motion-expect 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +8 -0
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +34 -0
  8. data/Rakefile +1 -0
  9. data/lib/motion-expect.rb +9 -0
  10. data/lib/motion-expect/bacon_context.rb +4 -0
  11. data/lib/motion-expect/exceptions.rb +4 -0
  12. data/lib/motion-expect/expectation.rb +37 -0
  13. data/lib/motion-expect/fail_message_renderer.rb +100 -0
  14. data/lib/motion-expect/matcher/be.rb +11 -0
  15. data/lib/motion-expect/matcher/be_false.rb +12 -0
  16. data/lib/motion-expect/matcher/be_generic.rb +7 -0
  17. data/lib/motion-expect/matcher/be_nil.rb +11 -0
  18. data/lib/motion-expect/matcher/be_true.rb +11 -0
  19. data/lib/motion-expect/matcher/be_within.rb +21 -0
  20. data/lib/motion-expect/matcher/change.rb +28 -0
  21. data/lib/motion-expect/matcher/end_with.rb +15 -0
  22. data/lib/motion-expect/matcher/eq.rb +11 -0
  23. data/lib/motion-expect/matcher/eql.rb +9 -0
  24. data/lib/motion-expect/matcher/have_generic.rb +16 -0
  25. data/lib/motion-expect/matcher/have_items.rb +22 -0
  26. data/lib/motion-expect/matcher/include.rb +15 -0
  27. data/lib/motion-expect/matcher/match.rb +11 -0
  28. data/lib/motion-expect/matcher/match_array.rb +21 -0
  29. data/lib/motion-expect/matcher/matchers.rb +91 -0
  30. data/lib/motion-expect/matcher/raise_error.rb +31 -0
  31. data/lib/motion-expect/matcher/respond_to.rb +28 -0
  32. data/lib/motion-expect/matcher/satisfy.rb +15 -0
  33. data/lib/motion-expect/matcher/single_method.rb +22 -0
  34. data/lib/motion-expect/matcher/start_with.rb +15 -0
  35. data/motion-expect.gemspec +22 -0
  36. data/run-tests.sh +3 -0
  37. data/spec_app/.repl_history +0 -0
  38. data/spec_app/Gemfile +5 -0
  39. data/spec_app/Rakefile +15 -0
  40. data/spec_app/app/app_delegate.rb +5 -0
  41. data/spec_app/resources/Default-568h@2x.png +0 -0
  42. data/spec_app/spec/helpers/bacon_context.rb +5 -0
  43. data/spec_app/spec/matchers/be_false_spec.rb +22 -0
  44. data/spec_app/spec/matchers/be_generic_spec.rb +28 -0
  45. data/spec_app/spec/matchers/be_nil_spec.rb +22 -0
  46. data/spec_app/spec/matchers/be_true_spec.rb +22 -0
  47. data/spec_app/spec/matchers/be_within_spec.rb +21 -0
  48. data/spec_app/spec/matchers/change_spec.rb +44 -0
  49. data/spec_app/spec/matchers/end_with_spec.rb +13 -0
  50. data/spec_app/spec/matchers/equality_spec.rb +37 -0
  51. data/spec_app/spec/matchers/have_generic_spec.rb +26 -0
  52. data/spec_app/spec/matchers/have_items_spec.rb +17 -0
  53. data/spec_app/spec/matchers/include_spec.rb +32 -0
  54. data/spec_app/spec/matchers/match_array_spec.rb +22 -0
  55. data/spec_app/spec/matchers/match_spec.rb +21 -0
  56. data/spec_app/spec/matchers/raise_error_spec.rb +65 -0
  57. data/spec_app/spec/matchers/respond_to_spec.rb +30 -0
  58. data/spec_app/spec/matchers/satisfy_spec.rb +17 -0
  59. data/spec_app/spec/matchers/start_with_spec.rb +13 -0
  60. metadata +131 -0
@@ -0,0 +1,44 @@
1
+ describe "Matcher::Change" do
2
+ class TestClass
3
+ attr_reader :counter
4
+ def initialize
5
+ @counter = 0
6
+ end
7
+
8
+ def add
9
+ @counter += 1
10
+ end
11
+
12
+ def dont_add; end
13
+ end
14
+
15
+ it 'change passes when the expected block changes the result of the argument block' do
16
+ test_object = TestClass.new
17
+ expect{ test_object.add }.to change{ test_object.counter }
18
+ end
19
+
20
+ it "change fails when the expected block doesn't change the result of the argument block" do
21
+ test_object = TestClass.new
22
+ expect_failure("Block expected to change value"){ expect{ test_object.dont_add }.to change{ test_object.counter } }
23
+ end
24
+
25
+ it "change passes when the expected block doesn't change the result of the argument block but asked not_to" do
26
+ test_object = TestClass.new
27
+ expect{ test_object.dont_add }.not_to change{ test_object.counter }
28
+ end
29
+
30
+ it "change when specified 'by' passes when the expected block changes the result of the argument block by the given amount" do
31
+ test_object = TestClass.new
32
+ expect{ test_object.add; test_object.add }.to change{ test_object.counter }.by(2)
33
+ end
34
+
35
+ it "change when specified 'by' fails when the expected block changes the result of the argument block by a different amount" do
36
+ test_object = TestClass.new
37
+ expect_failure("Block expected to change value by 6 but changed by 2"){ expect{ test_object.add; test_object.add }.to change{ test_object.counter }.by(6) }
38
+ end
39
+
40
+ it "change when specified 'by' fails when the expected block changes the result of the argument block by the given amount but asked not to" do
41
+ test_object = TestClass.new
42
+ expect_failure("Block not expected to change value by 2"){ expect{ test_object.add; test_object.add }.not_to change{ test_object.counter }.by(2) }
43
+ end
44
+ end
@@ -0,0 +1,13 @@
1
+ describe "Matcher::EndWith" do
2
+ it 'end_with passes when the subject ends with the given string' do
3
+ expect("super").to end_with("per")
4
+ end
5
+
6
+ it "end_with fails when the subject doesn't end with the given string" do
7
+ expect_failure("\"super\" expected to end with \"key\""){ expect("super").to end_with("key") }
8
+ end
9
+
10
+ it "end_with fails when the subject ends with the given string but asked to not" do
11
+ expect_failure("\"super\" not expected to end with \"per\""){ expect("super").not_to end_with("per") }
12
+ end
13
+ end
@@ -0,0 +1,37 @@
1
+ describe "Matcher::Equality" do
2
+ it 'eql passes when value is eql? to subject' do
3
+ expect(1).to eql(1)
4
+ end
5
+
6
+ it "eql fails when value is not eql? subject" do
7
+ expect_failure("1 #eql?(1.0) expected to return true"){ expect(1).to eql(1.0) }
8
+ end
9
+
10
+ it "eq passes if value is == to subject" do
11
+ expect(1).to eq(1.0)
12
+ end
13
+
14
+ it "eq fails if value is == to subject" do
15
+ expect_failure("1 expected to be == to 2.0"){ expect(1).to eq(2.0) }
16
+ end
17
+
18
+ it "be passes if value is same object as subject" do
19
+ object = Object.new
20
+ expect(object).to be(object)
21
+ end
22
+
23
+ it "be fails if value is not the same object as subject" do
24
+ expect_failure("\"super\" expected to be same object as \"super\""){ expect("super").to be("super") }
25
+ end
26
+
27
+ it "equal fails if value is not the same object as subject" do
28
+ expect_failure("\"super\" expected to be same object as \"super\""){ expect("super").to equal("super") }
29
+ end
30
+
31
+ it "equal fails if value is the same object as subject but asked not to" do
32
+ expect_failure("\"super\" not expected to be same object as \"super\"") do
33
+ string = "super"
34
+ expect(string).not_to equal(string)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,26 @@
1
+ describe "Matcher::HaveGeneric" do
2
+ it "have_key passes if the hash includes the given key" do
3
+ expect({a: 1, b: 2, c: 3}).to have_key(:c)
4
+ end
5
+
6
+ it "have_key fails if the hash doesn't include the given key" do
7
+ expect_failure("{:a=>1, :b=>2, :c=>3} #has_key?(:h) expected to return true"){ expect({a: 1, b: 2, c: 3}).to have_key(:h) }
8
+ end
9
+
10
+ it "have_color passes when the value responds to has_color? and returns true" do
11
+ class TestClass; def has_color?(color); color == :red; end; end
12
+ expect(TestClass.new).to have_color(:red)
13
+ end
14
+
15
+ it "have_color fails when the value responds to has_color? and returns false" do
16
+ class TestClass; def has_color?(color); color == :red; end; end
17
+ object = TestClass.new
18
+ expect_failure("#{object.inspect} #has_color?(:blue) expected to return true"){ expect(object).to have_color(:blue) }
19
+ end
20
+
21
+ it "have_color fails when the value responds to has_color? and returns true but asked not to" do
22
+ class TestClass; def has_color?(color); color == :red; end; end
23
+ object = TestClass.new
24
+ expect_failure("#{object.inspect} #has_color?(:red) not expected to return true"){ expect(object).to_not have_color(:red) }
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ describe "Matcher::HaveItems" do
2
+ it 'have passes when subject has the same number of items' do
3
+ expect([1,2,3]).to have(3).items
4
+ end
5
+
6
+ it 'have fails when subject has the a different number of items' do
7
+ expect_failure("[1, 2, 3] expected to have 10 items but had 3"){ expect([1,2,3]).to have(10).items }
8
+ end
9
+
10
+ it 'have fails when subject has the same number of items but asked not to' do
11
+ expect_failure("[1, 2, 3] not expected to have 3 items"){ expect([1,2,3]).not_to have(3).items }
12
+ end
13
+
14
+ it 'have failure message changes when sending #keys instead of #items' do
15
+ expect_failure("[1, 2, 3] not expected to have 3 keys"){ expect([1,2,3]).not_to have(3).keys }
16
+ end
17
+ end
@@ -0,0 +1,32 @@
1
+ describe "Matcher::Include" do
2
+ it 'include passes when subject include? responds true' do
3
+ expect([1,2,3,4]).to include(4)
4
+ end
5
+
6
+ it 'include fails when subject include? responds false' do
7
+ expect_failure("[1, 2, 3, 4] expected to include \"asd\""){ expect([1,2,3,4]).to include("asd") }
8
+ end
9
+
10
+ it 'include passes when an object responds true to include?' do
11
+ class TestClass; def include?(value); true; end; end
12
+ expect(TestClass.new).to include(3)
13
+ end
14
+
15
+ it 'include passes when an object responds false to include?' do
16
+ class TestClass; def include?(value); false; end; end
17
+ test_object = TestClass.new
18
+ expect_failure("#{test_object.inspect} expected to include 3"){ expect(test_object).to include(3) }
19
+ end
20
+
21
+ it "include passes when all values are included in subject" do
22
+ expect([1,2,3,4]).to include(2,3,4)
23
+ end
24
+
25
+ it "include fails when some values are not included in subject" do
26
+ expect_failure("#{[1,2,3,4]} expected to include #{[2, 3, 4, 6]}"){ expect([1,2,3,4]).to include(2, 3, 4, 6) }
27
+ end
28
+
29
+ it "include fails when all values are included but asked not to" do
30
+ expect_failure("#{[1,2,3,4,5,6]} not expected to include #{[3, 4, 6]}"){ expect([1,2,3,4,5,6]).not_to include(3, 4, 6) }
31
+ end
32
+ end
@@ -0,0 +1,22 @@
1
+ describe "Matcher::MatchArray" do
2
+ it 'match_array passes when subject has the same items as value' do
3
+ expect([1,2,3,4]).to match_array([4,2,1,3])
4
+ end
5
+
6
+ it "match_array fails when subject has less items than value" do
7
+ expect_failure("#{[1,2,3]} expected to match array #{[1,2,3,4]}"){ expect([1,2,3]).to match_array([1,2,3,4]) }
8
+ end
9
+
10
+ it "match_array fails when subject has more items than value" do
11
+ expect_failure("#{[1,2,3, 4]} expected to match array #{[1,2,4,4,3]}"){ expect([1,2,3,4]).to match_array([1,2,4,4,3]) }
12
+ end
13
+
14
+ it "match_array fails when subject has different items" do
15
+ expected_array = [Object.new, "a", 2, 3]
16
+ expect_failure("#{[1,2,3,4]} expected to match array #{expected_array}"){ expect([1,2,3,4]).to match_array(expected_array) }
17
+ end
18
+
19
+ it 'match_array fails when subject matches the array but asked not to' do
20
+ expect_failure("#{[1,2,3,4]} not expected to match array"){ expect([1,2,3,4]).to_not match_array([4,2,1,3]) }
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ describe "Matcher::Match" do
2
+ it 'match passes when subject is a string and matches the regex' do
3
+ expect("asd asd asd").to match(/asd/)
4
+ end
5
+
6
+ it "match fails when subject is a string and doesn't match the regex" do
7
+ expect_failure("\"qwerty qwerty\" expected to match /asd/"){ expect("qwerty qwerty").to match(/asd/) }
8
+ end
9
+
10
+ it "match passes when subject is a regex and matches the given string" do
11
+ expect(/foo/).to match("food")
12
+ end
13
+
14
+ it "match fails when subject is a regex and doesn't matche the given string" do
15
+ expect_failure("/foo/ expected to match \"drink\""){ expect(/foo/).to match("drink") }
16
+ end
17
+
18
+ it 'match fails when subject is a string and matches the regex but asked not to' do
19
+ expect_failure("\"asd asd asd\" not expected to match /asd/"){ expect("asd asd asd").to_not match(/asd/) }
20
+ end
21
+ end
@@ -0,0 +1,65 @@
1
+ describe "Matcher::RaiseError" do
2
+ it 'raise_error without argument passes when the block raises any exception' do
3
+ expect{ 1/0 }.to raise_error
4
+ end
5
+
6
+ it "raise_error without argument failes when the block doesn't raise any exception" do
7
+ expect_failure("Block expected to raise error"){ expect{ Object.new }.to raise_error }
8
+ end
9
+
10
+ it "raise_error with a class argument passes when the block raises an exception of the argument class" do
11
+ expect{ 1/0 }.to raise_error(ZeroDivisionError)
12
+ end
13
+
14
+ it "raise_error with a class argument fails when the block raises an exception of a different class" do
15
+ expect_failure("Block expected to raise error of type ArgumentError"){ expect{ 1/0 }.to raise_error(ArgumentError) }
16
+ end
17
+
18
+ it "raise_error with a string argument passes when the block raises an exception with a message that includes the string" do
19
+ expect{ raise "one message" }.to raise_error("one message")
20
+ end
21
+
22
+ it "raise_error with a string argument fails when the block raises an exception with a message that doesn't include the string" do
23
+ expect_failure("Block expected to raise error with message matching \"different\" but was #<RuntimeError: one message>"){ expect{ raise "one message" }.to raise_error("different") }
24
+ end
25
+
26
+ it "raise_error with a Regex argument passes when the block raises an exception with a message that matches the Regex" do
27
+ expect{ raise "one message" }.to raise_error(/message/)
28
+ end
29
+
30
+ it "raise_error with a Regex argument fails when the block raises an exception with a message that doesn't match the Regex" do
31
+ expect_failure("Block expected to raise error with message matching #{/different/.inspect} but was #<RuntimeError: one message>"){ expect{ raise "one message" }.to raise_error(/different/) }
32
+ end
33
+
34
+ it "raise_error with a class and a string argument passes if the block raises an exception of the same class and includes the string in its message" do
35
+ expect{ raise ArgumentError.new("with a message") }.to raise_error(ArgumentError, "message")
36
+ end
37
+
38
+ it "raise_error with a class and a string argument fails if the block raises an exception of the same class and but doesn't include the string in its message" do
39
+ expect_failure("Block expected to raise error of type ArgumentError with message matching #{"different".inspect}"){ expect{ raise ArgumentError.new("with a message") }.to raise_error(ArgumentError, "different") }
40
+ end
41
+
42
+ it "raise_error with a class and a string argument fails if the block raises an exception of a different class" do
43
+ expect_failure("Block expected to raise error of type ZeroDivisionError with message matching #{"message".inspect}"){ expect{ raise ArgumentError.new("with a message") }.to raise_error(ZeroDivisionError, "message") }
44
+ end
45
+
46
+ it "raise_error with a class and a regex argument passes if the block raises an exception of the same class and includes the string in its message" do
47
+ expect{ raise ArgumentError.new("with a message") }.to raise_error(ArgumentError, /message/)
48
+ end
49
+
50
+ it "raise_error with a class and a regex argument fails if the block raises an exception of the same class and but doesn't include the string in its message" do
51
+ expect_failure("Block expected to raise error of type ArgumentError with message matching #{/different/.inspect}"){ expect{ raise ArgumentError.new("with a message") }.to raise_error(ArgumentError, /different/) }
52
+ end
53
+
54
+ it "raise_error with a class and a regex argument fails if the block raises an exception of a different class" do
55
+ expect_failure("Block expected to raise error of type ZeroDivisionError with message matching #{/message/.inspect} but was "){ expect{ raise ArgumentError.new("with a message") }.to raise_error(ZeroDivisionError, /message/) }
56
+ end
57
+
58
+ it "raise_exception is an alias of raise_error " do
59
+ expect{ 1/0 }.to raise_exception(ZeroDivisionError)
60
+ end
61
+
62
+ it "raise_error with a class argument fails when the block raises an exception of the argument class but asked not to" do
63
+ expect_failure("Block not expected to raise error of type ZeroDivisionError"){ expect{ 1/0 }.not_to raise_error(ZeroDivisionError) }
64
+ end
65
+ end
@@ -0,0 +1,30 @@
1
+ describe "Matcher::RespondTo" do
2
+ it 'respond_to passes when subject responds to method name' do
3
+ expect("string").to respond_to(:upcase)
4
+ end
5
+
6
+ it "respond_to fails when subject doesn't respond to method name" do
7
+ expect_failure("\"string\" expected to respond to #floor"){ expect("string").to respond_to(:floor) }
8
+ end
9
+
10
+ it "respond_to when given number of arguments fails when subject doesn't respond to method name" do
11
+ expect_failure("\"string\" expected to respond to #floor with 2 arguments"){ expect("string").to respond_to(:floor).with(2).arguments }
12
+ end
13
+
14
+ it "respond_to when given number of arguments passes when subject responds to method name with exactly the same number of arguments" do
15
+ class TestCase; def call_me(a,b,c); end; end
16
+ expect(TestCase.new).to respond_to(:call_me).with(3).arguments
17
+ end
18
+
19
+ it "respond_to when given number of arguments fails when subject responds to method name with different number of arguments" do
20
+ class TestCase; def call_me(a,b,c); end; end
21
+ test_object = TestCase.new
22
+ expect_failure("#{test_object.inspect} expected to respond to #call_me with 1 arguments"){ expect(test_object).to respond_to(:call_me).with(1).argument }
23
+ end
24
+
25
+ it "respond_to when given number of arguments fails when subject responds to method name with exactly the same number of arguments but asked not to" do
26
+ class TestCase; def call_me(a,b,c); end; end
27
+ test_object = TestCase.new
28
+ expect_failure("#{test_object.inspect} not expected to respond to #call_me with 3 arguments"){ expect(test_object).not_to respond_to(:call_me).with(3).arguments }
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ describe "Matcher::Satisfy" do
2
+ it 'satisfy passes when the block returns true' do
3
+ expect(1).to satisfy{|v| v == 1}
4
+ end
5
+
6
+ it 'satisfy fails when the block returns false' do
7
+ expect_failure("Block expected to satisfy condition"){ expect(1).to satisfy{|v| v == 3} }
8
+ end
9
+
10
+ it 'satisfy fails when the block raises an exception' do
11
+ expect{ expect(1).to satisfy{|v| 1/0 } }.to raise_error(ZeroDivisionError)
12
+ end
13
+
14
+ it 'satisfy fails when the block returns true but asked not to' do
15
+ expect_failure("Block not expected to satisfy condition"){ expect(1).not_to satisfy{|v| v == 1} }
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ describe "Matcher::StartWith" do
2
+ it 'start_with passes when the subject starts with the given string' do
3
+ expect("super").to start_with("sup")
4
+ end
5
+
6
+ it "start_with fails when the subject doesn't start with the given string" do
7
+ expect_failure("\"super\" expected to start with \"key\""){ expect("super").to start_with("key") }
8
+ end
9
+
10
+ it 'start_with fails when the subject starts with the given string but asked not to' do
11
+ expect_failure("\"super\" not expected to start with \"sup\""){ expect("super").to_not start_with("sup") }
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: motion-expect
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ignacio Piantanida
8
+ - Lori Olson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2019-06-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.3'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.3'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ description: RSpec's expect syntax in MacBacon
43
+ email:
44
+ - lori@wndx.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".gitignore"
50
+ - ".travis.yml"
51
+ - CHANGELOG.md
52
+ - Gemfile
53
+ - LICENSE.txt
54
+ - README.md
55
+ - Rakefile
56
+ - lib/motion-expect.rb
57
+ - lib/motion-expect/bacon_context.rb
58
+ - lib/motion-expect/exceptions.rb
59
+ - lib/motion-expect/expectation.rb
60
+ - lib/motion-expect/fail_message_renderer.rb
61
+ - lib/motion-expect/matcher/be.rb
62
+ - lib/motion-expect/matcher/be_false.rb
63
+ - lib/motion-expect/matcher/be_generic.rb
64
+ - lib/motion-expect/matcher/be_nil.rb
65
+ - lib/motion-expect/matcher/be_true.rb
66
+ - lib/motion-expect/matcher/be_within.rb
67
+ - lib/motion-expect/matcher/change.rb
68
+ - lib/motion-expect/matcher/end_with.rb
69
+ - lib/motion-expect/matcher/eq.rb
70
+ - lib/motion-expect/matcher/eql.rb
71
+ - lib/motion-expect/matcher/have_generic.rb
72
+ - lib/motion-expect/matcher/have_items.rb
73
+ - lib/motion-expect/matcher/include.rb
74
+ - lib/motion-expect/matcher/match.rb
75
+ - lib/motion-expect/matcher/match_array.rb
76
+ - lib/motion-expect/matcher/matchers.rb
77
+ - lib/motion-expect/matcher/raise_error.rb
78
+ - lib/motion-expect/matcher/respond_to.rb
79
+ - lib/motion-expect/matcher/satisfy.rb
80
+ - lib/motion-expect/matcher/single_method.rb
81
+ - lib/motion-expect/matcher/start_with.rb
82
+ - motion-expect.gemspec
83
+ - run-tests.sh
84
+ - spec_app/.repl_history
85
+ - spec_app/Gemfile
86
+ - spec_app/Rakefile
87
+ - spec_app/app/app_delegate.rb
88
+ - spec_app/resources/Default-568h@2x.png
89
+ - spec_app/spec/helpers/bacon_context.rb
90
+ - spec_app/spec/matchers/be_false_spec.rb
91
+ - spec_app/spec/matchers/be_generic_spec.rb
92
+ - spec_app/spec/matchers/be_nil_spec.rb
93
+ - spec_app/spec/matchers/be_true_spec.rb
94
+ - spec_app/spec/matchers/be_within_spec.rb
95
+ - spec_app/spec/matchers/change_spec.rb
96
+ - spec_app/spec/matchers/end_with_spec.rb
97
+ - spec_app/spec/matchers/equality_spec.rb
98
+ - spec_app/spec/matchers/have_generic_spec.rb
99
+ - spec_app/spec/matchers/have_items_spec.rb
100
+ - spec_app/spec/matchers/include_spec.rb
101
+ - spec_app/spec/matchers/match_array_spec.rb
102
+ - spec_app/spec/matchers/match_spec.rb
103
+ - spec_app/spec/matchers/raise_error_spec.rb
104
+ - spec_app/spec/matchers/respond_to_spec.rb
105
+ - spec_app/spec/matchers/satisfy_spec.rb
106
+ - spec_app/spec/matchers/start_with_spec.rb
107
+ homepage: https://github.com/rubymotion-community/motion-expect
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.5.2.3
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: Bring RSpec 3.0 expect syntax to MacBacon
131
+ test_files: []