bogus 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +1 -1
  4. data/Guardfile +1 -3
  5. data/Guardfile.cucumber +0 -2
  6. data/README.md +1 -1
  7. data/bogus.gemspec +3 -1
  8. data/features/changelog.md +11 -0
  9. data/features/configuration/fake_ar_attributes.feature +2 -2
  10. data/features/contract_tests/contract_tests_mocks.feature +5 -5
  11. data/features/contract_tests/contract_tests_spies.feature +1 -1
  12. data/features/contract_tests/contract_tests_stubs.feature +6 -6
  13. data/features/contract_tests/custom_overwritten_class.feature +4 -4
  14. data/features/contract_tests/return_value_contracts.feature +2 -2
  15. data/features/fakes/anonymous_doubles.feature +5 -5
  16. data/features/fakes/duck_types.feature +9 -9
  17. data/features/fakes/fake_objects.feature +31 -8
  18. data/features/fakes/global_fake_configuration.feature +5 -5
  19. data/features/fakes/replacing_classes.feature +5 -5
  20. data/features/readme.md +5 -5
  21. data/features/safe_stubbing/argument_matchers.feature +23 -10
  22. data/features/safe_stubbing/safe_mocking.feature +1 -1
  23. data/features/safe_stubbing/safe_stubbing.feature +1 -1
  24. data/features/safe_stubbing/spies.feature +7 -7
  25. data/lib/bogus.rb +1 -0
  26. data/lib/bogus/core_ext.rb +22 -0
  27. data/lib/bogus/fakes/fake.rb +2 -1
  28. data/lib/bogus/fakes/method_stringifier.rb +1 -0
  29. data/lib/bogus/mocking_dsl.rb +4 -0
  30. data/lib/bogus/stubbing/has_overwritten_methods.rb +28 -10
  31. data/lib/bogus/stubbing/have_received_matcher.rb +4 -2
  32. data/lib/bogus/stubbing/matchers/any_args.rb +9 -0
  33. data/lib/bogus/stubbing/matchers/matches_argument.rb +11 -0
  34. data/lib/bogus/stubbing/{any_args.rb → matchers/with_arguments.rb} +0 -6
  35. data/lib/bogus/stubbing/overwrites_methods.rb +6 -1
  36. data/lib/bogus/stubbing/undefined_return_value.rb +4 -0
  37. data/lib/bogus/support.rb +11 -0
  38. data/lib/bogus/version.rb +1 -1
  39. data/spec/bogus/clean_ruby_spec.rb +1 -1
  40. data/spec/bogus/configuration_spec.rb +2 -2
  41. data/spec/bogus/contracts/adds_contract_verification_spec.rb +10 -10
  42. data/spec/bogus/contracts/adds_recording_spec.rb +4 -4
  43. data/spec/bogus/contracts/interactions_repository_spec.rb +15 -15
  44. data/spec/bogus/contracts/proxy_class_spec.rb +7 -7
  45. data/spec/bogus/contracts/records_double_interactions_spec.rb +1 -1
  46. data/spec/bogus/contracts/verifies_contracts_spec.rb +3 -3
  47. data/spec/bogus/fakes/base_class_identifier_spec.rb +1 -1
  48. data/spec/bogus/fakes/class_methods_spec.rb +4 -5
  49. data/spec/bogus/fakes/converts_name_to_class_spec.rb +3 -3
  50. data/spec/bogus/fakes/copies_classes_spec.rb +20 -16
  51. data/spec/bogus/fakes/creates_fakes_spec.rb +6 -6
  52. data/spec/bogus/fakes/creates_fakes_with_stubbed_methods_spec.rb +16 -15
  53. data/spec/bogus/fakes/fake_ar_attributes_spec.rb +3 -3
  54. data/spec/bogus/fakes/fake_configuration_spec.rb +16 -16
  55. data/spec/bogus/fakes/fake_registry_spec.rb +2 -2
  56. data/spec/bogus/fakes/fake_spec.rb +1 -1
  57. data/spec/bogus/fakes/fakes_classes_spec.rb +4 -4
  58. data/spec/bogus/fakes/faking_factories_spec.rb +4 -4
  59. data/spec/bogus/fakes/frozen_fakes_spec.rb +4 -4
  60. data/spec/bogus/fakes/instance_methods_spec.rb +5 -5
  61. data/spec/bogus/fakes/makes_ducks_spec.rb +3 -3
  62. data/spec/bogus/fakes/makes_substitute_methods_spec.rb +1 -1
  63. data/spec/bogus/fakes/overwriten_classes_spec.rb +3 -3
  64. data/spec/bogus/fakes/overwrites_classes_spec.rb +2 -2
  65. data/spec/bogus/fakes/registers_created_fakes_spec.rb +3 -3
  66. data/spec/bogus/fakes/resets_overwritten_classes_spec.rb +3 -3
  67. data/spec/bogus/fakes/stubbing_new_method_on_fake_class_spec.rb +25 -0
  68. data/spec/bogus/mocking_dsl_spec.rb +36 -36
  69. data/spec/bogus/ruby_2_1_support_spec.rb +38 -0
  70. data/spec/bogus/ruby_2_support_spec.rb +14 -64
  71. data/spec/bogus/stubbing/anything_spec.rb +5 -5
  72. data/spec/bogus/stubbing/double_spec.rb +2 -2
  73. data/spec/bogus/stubbing/have_received_matcher_spec.rb +11 -6
  74. data/spec/bogus/stubbing/interaction_spec.rb +7 -7
  75. data/spec/bogus/stubbing/multi_stubber_spec.rb +2 -2
  76. data/spec/bogus/stubbing/overwrites_methods_spec.rb +8 -8
  77. data/spec/bogus/stubbing/record_interactions_spec.rb +3 -3
  78. data/spec/bogus/stubbing/shadow_spec.rb +28 -28
  79. data/spec/bogus/stubbing/stubbing_existing_methods_on_fakes_spec.rb +50 -0
  80. data/spec/bogus/stubbing/tracks_existence_of_test_doubles_spec.rb +2 -2
  81. data/spec/bogus/stubbing/undefined_return_value_spec.rb +2 -2
  82. data/spec/spec_helper.rb +6 -1
  83. data/spec/support/shared_examples_for_keyword_arguments.rb +63 -0
  84. metadata +160 -160
  85. data/Gemfile.lock +0 -146
@@ -55,7 +55,7 @@ Feature: Replacing classes with fakes
55
55
  {name: "Moby Dick", author: "Herman Melville"}]
56
56
  File.open(Library::FILE, "w") { |f| f.print books.to_yaml }
57
57
 
58
- Library.books.should == books
58
+ expect(Library.books).to eq(books)
59
59
  end
60
60
 
61
61
  after do
@@ -77,7 +77,7 @@ Feature: Replacing classes with fakes
77
77
 
78
78
  fake_class(Library, books: [tom_sawyer, moby_dick])
79
79
 
80
- BookIndex.by_author("Mark Twain").should == [tom_sawyer]
80
+ expect(BookIndex.by_author("Mark Twain")).to eq([tom_sawyer])
81
81
  end
82
82
  end
83
83
  """
@@ -99,7 +99,7 @@ Feature: Replacing classes with fakes
99
99
  {name: "Moby Dick", author: "Herman Melville"}]
100
100
  File.open(Library::FILE, "w") { |f| f.print books.to_yaml }
101
101
 
102
- Library.books.should == books
102
+ expect(Library.books).to eq(books)
103
103
  end
104
104
 
105
105
  after do
@@ -122,7 +122,7 @@ Feature: Replacing classes with fakes
122
122
  fake_class(Library, fake_name: :book_repository,
123
123
  books: [tom_sawyer, moby_dick])
124
124
 
125
- BookIndex.by_author("Mark Twain").should == [tom_sawyer]
125
+ expect(BookIndex.by_author("Mark Twain")).to eq([tom_sawyer])
126
126
  end
127
127
  end
128
128
  """
@@ -139,7 +139,7 @@ Feature: Replacing classes with fakes
139
139
  fake_class(Library, books: [])
140
140
 
141
141
  it "returns books written by author" do
142
- BookIndex.by_author("Mark Twain").should == []
142
+ expect(BookIndex.by_author("Mark Twain")).to eq([])
143
143
  end
144
144
  end
145
145
  """
@@ -10,7 +10,7 @@ It is not uncommon to encounter code like this in isolated unit tests:
10
10
 
11
11
  report_card = ReportCard.new(scores, students)
12
12
 
13
- report_card.average_score.should == 7
13
+ expect(report_card.average_score).to eq(7)
14
14
  end
15
15
 
16
16
  _NOTE: In the above example we use mocha syntax, but this patten is common
@@ -42,7 +42,7 @@ Let's reexamine our previous example, this time Bogus-style:
42
42
 
43
43
  report_card = ReportCard.new(scores, students)
44
44
 
45
- report_card.average_score.should == 7
45
+ expect(report_card.average_score).to eq(7)
46
46
  end
47
47
 
48
48
  Can you spot the difference? Not much, huh?
@@ -73,7 +73,7 @@ Now if you test an object that collaborates with our `PushNotifier`, you would d
73
73
 
74
74
  comment_adder.add("Hello world!")
75
75
 
76
- push_notifier.should have_received.notify_async("Comment: 'Hello world!' added.")
76
+ expect(push_notifier).to have_received.notify_async("Comment: 'Hello world!' added.")
77
77
  end
78
78
 
79
79
  While not really impressive, this feature is worth mentioning because it will eliminate a lot of the mocking and stubbing from your tests.
@@ -115,7 +115,7 @@ A contract test like that could look like this:
115
115
  scores.add("John", 5)
116
116
  scores.add("Mary", 9)
117
117
 
118
- scores.get(["John", "Mary"]).should == [5, 9]
118
+ expect(scores.get(["John", "Mary"])).to eq([5, 9])
119
119
  end
120
120
 
121
121
  Obviously Bogus won't be able to write those tests for you. However it can remind you if you forget to add one.
@@ -155,7 +155,7 @@ You can test it easily, with all the benefits of fakes, safe stubbing and contra
155
155
  it "should send a push notification" do
156
156
  CommentAdder.add("the user", "the comment")
157
157
 
158
- PushNotifier.should have_received.notify_async("comment added")
158
+ expect(PushNotifier).to have_received.notify_async("comment added")
159
159
  end
160
160
  end
161
161
 
@@ -18,7 +18,7 @@ Feature: Argument matchers
18
18
 
19
19
  stub(Catalog).books_by_author_and_title(any_args) { :some_book }
20
20
 
21
- Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes").should == :some_book
21
+ expect(Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes")).to eq(:some_book)
22
22
  """
23
23
 
24
24
  Scenario: Stubbing methods with some wildcard arguments
@@ -29,12 +29,12 @@ Feature: Argument matchers
29
29
  stub(Catalog).books_by_author_and_title(any_args) { :some_book }
30
30
  stub(Catalog).books_by_author_and_title("Mark Twain", anything) { :twains_book }
31
31
 
32
- Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer").should == :twains_book
33
- Catalog.books_by_author_and_title("Mark Twain", "Huckleberry Finn").should == :twains_book
34
- Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes").should == :some_book
32
+ expect(Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer")).to eq(:twains_book)
33
+ expect(Catalog.books_by_author_and_title("Mark Twain", "Huckleberry Finn")).to eq(:twains_book)
34
+ expect(Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes")).to eq(:some_book)
35
35
  """
36
36
 
37
- Scenario: Stubbing methods with proc argument matcher
37
+ Scenario: Stubbing methods with proc arguments matcher
38
38
  Then the following test should pass:
39
39
  """ruby
40
40
  require_relative 'catalog'
@@ -42,9 +42,22 @@ Feature: Argument matchers
42
42
  stub(Catalog).books_by_author_and_title(any_args) { :some_book }
43
43
  stub(Catalog).books_by_author_and_title(with{|author| author =~ /Twain/ }) { :twains_book }
44
44
 
45
- Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer").should == :twains_book
46
- Catalog.books_by_author_and_title("M. Twain", "Huckleberry Finn").should == :twains_book
47
- Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes").should == :some_book
45
+ expect(Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer")).to eq(:twains_book)
46
+ expect(Catalog.books_by_author_and_title("M. Twain", "Huckleberry Finn")).to eq(:twains_book)
47
+ expect(Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes")).to eq(:some_book)
48
+ """
49
+
50
+ Scenario: Stubbing methods with proc argument matcher
51
+ Then the following test should pass:
52
+ """ruby
53
+ require_relative 'catalog'
54
+
55
+ stub(Catalog).books_by_author_and_title(any_args) { :some_book }
56
+ stub(Catalog).books_by_author_and_title(matches{|author| author =~ /Twain/ }, "Tom Sawyer") { :twains_book }
57
+
58
+ expect(Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer")).to eq(:twains_book)
59
+ expect(Catalog.books_by_author_and_title("M. Twain", "Huckleberry Finn")).to eq(:some_book)
60
+ expect(Catalog.books_by_author_and_title("Arthur Conan Doyle", "Sherlock Holmes")).to eq(:some_book)
48
61
  """
49
62
 
50
63
  Scenario: Stubbing methods with argument type matcher
@@ -55,6 +68,6 @@ Feature: Argument matchers
55
68
  stub(Catalog).books_by_author_and_title(any_args) { :some_book }
56
69
  stub(Catalog).books_by_author_and_title(any(String), any(String)) { :twains_book }
57
70
 
58
- Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer").should == :twains_book
59
- Catalog.books_by_author_and_title("M. Twain", :other_book).should == :some_book
71
+ expect(Catalog.books_by_author_and_title("Mark Twain", "Tom Sawyer")).to eq(:twains_book)
72
+ expect(Catalog.books_by_author_and_title("M. Twain", :other_book)).to eq(:some_book)
60
73
  """
@@ -33,7 +33,7 @@ Feature: Safe mocking
33
33
  library = Library.new
34
34
  mock(library).checkout("some book") { :checked_out }
35
35
 
36
- library.checkout("some book").should == :checked_out
36
+ expect(library.checkout("some book")).to eq(:checked_out)
37
37
  end
38
38
  end
39
39
  """
@@ -25,7 +25,7 @@ Feature: Safe stubbing
25
25
  library = Library.new
26
26
  stub(library).checkout("some book") { :checked_out }
27
27
 
28
- library.checkout("some book").should == :checked_out
28
+ expect(library.checkout("some book")).to eq(:checked_out)
29
29
  end
30
30
  end
31
31
  """
@@ -43,8 +43,8 @@ Feature: Spies
43
43
 
44
44
  student.study("Moby Dick", "Sherlock Holmes")
45
45
 
46
- library.should have_received.checkout("Moby Dick")
47
- library.should have_received.checkout("Sherlock Holmes")
46
+ expect(library).to have_received.checkout("Moby Dick")
47
+ expect(library).to have_received.checkout("Sherlock Holmes")
48
48
  end
49
49
  end
50
50
  """
@@ -63,7 +63,7 @@ Feature: Spies
63
63
 
64
64
  student.study("Moby Dick")
65
65
 
66
- library.should_not have_received.return_book("Moby Dick")
66
+ expect(library).not_to have_received.return_book("Moby Dick")
67
67
  end
68
68
  end
69
69
  """
@@ -82,7 +82,7 @@ Feature: Spies
82
82
 
83
83
  student.study("Moby Dick", "Sherlock Holmes")
84
84
 
85
- library.should_not have_received.checkout("Moby Dick",
85
+ expect(library).not_to have_received.checkout("Moby Dick",
86
86
  "Sherlock Holmes")
87
87
  end
88
88
  end
@@ -100,9 +100,9 @@ Feature: Spies
100
100
  it "studies using books from library" do
101
101
  stub(library).checkout("Moby Dick") { "checked out" }
102
102
 
103
- library.checkout("Moby Dick").should == "checked out"
103
+ expect(library.checkout("Moby Dick")).to eq("checked out")
104
104
 
105
- library.should have_received.checkout("Moby Dick")
105
+ expect(library).to have_received.checkout("Moby Dick")
106
106
  end
107
107
  end
108
108
  """
@@ -138,7 +138,7 @@ Feature: Spies
138
138
  it "sets the background to red" do
139
139
  Popup.alert("No such file!", canvas)
140
140
 
141
- canvas.should have_received(:background_color=, "red")
141
+ expect(canvas).to have_received(:background_color=, "red")
142
142
  end
143
143
  end
144
144
  """
@@ -7,6 +7,7 @@ require_relative 'bogus/stubbing/record_interactions'
7
7
  require_relative 'bogus/proxies_method_calls'
8
8
  require_relative 'bogus/rspec/extensions'
9
9
  require_relative 'bogus/rspec/adapter'
10
+ require_relative 'bogus/support'
10
11
 
11
12
  dir = File.realpath File.expand_path('../bogus', __FILE__)
12
13
  Dir["#{dir}/**/*.rb"].sort.each do |path|
@@ -0,0 +1,22 @@
1
+ # This monkey patch should not break Ruby compatibility
2
+ # but is necessary because MRI, insead of calling object.kind_of?(module),
3
+ # calls the C function, which implements kind_of. This makes
4
+ # using fake objects in switch cases produce unexpected results:
5
+ #
6
+ # fake = fake(:library) { Library }
7
+ #
8
+ # case fake
9
+ # when Library then "bingo!"
10
+ # else raise "oh noes!"
11
+ # end
12
+ #
13
+ # Without the patch, the snippet above raises 'oh noes!'
14
+ # instead of returning 'bingo!'.
15
+ class Module
16
+ # don't warn about redefining === method
17
+ Bogus::Support.supress_warnings do
18
+ def ===(object)
19
+ object.kind_of?(self)
20
+ end
21
+ end
22
+ end
@@ -29,7 +29,8 @@ module Bogus
29
29
  alias :__create__ :new
30
30
 
31
31
  def new(*args, &block)
32
- __record__(:new, *args, &block)
32
+ value = __record__(:new, *args, &block)
33
+ return value unless ::Bogus::UndefinedReturnValue.undefined?(value)
33
34
  __create__
34
35
  end
35
36
  end
@@ -29,6 +29,7 @@ module Bogus
29
29
  case type
30
30
  when :block then "&#{name}"
31
31
  when :key then default ? "#{name}: #{default}" : "#{name}: #{name}"
32
+ when :keyreq then default ? "#{name}:" : "#{name}: #{name}"
32
33
  when :opt then default ? "#{name} = #{default}" : name
33
34
  when :req then name
34
35
  when :rest then "*#{name}"
@@ -32,6 +32,10 @@ module Bogus
32
32
  Bogus::WithArguments.new(&block)
33
33
  end
34
34
 
35
+ def matches(&block)
36
+ Bogus::MatchesArgument.new(&block)
37
+ end
38
+
35
39
  def any(klass)
36
40
  Bogus::SameClass.new(klass)
37
41
  end
@@ -1,24 +1,42 @@
1
+ require 'set'
2
+
1
3
  module Bogus
2
4
  module HasOverwritenMethods
5
+ def self.aliased_name(name)
6
+ :"__bogus__alias__#{name}"
7
+ end
8
+
9
+ def self.alias(object, new_name, name)
10
+ object.singleton_class.send(:alias_method, new_name, name)
11
+ end
12
+
3
13
  def __overwritten_methods__
4
- @__overwritten_methods__ ||= {}
14
+ @__overwritten_methods__ ||= Set.new
5
15
  end
6
16
 
7
17
  def __overwrite__(name, method, body)
8
- return if __overwritten_methods__[name]
9
- method = method.to_proc if method
10
- __overwritten_methods__[name] = method || :no_such_method
18
+ return if __overwritten_methods__.include?(name)
19
+
20
+ new_name = HasOverwritenMethods.aliased_name(name)
21
+ HasOverwritenMethods.alias(self, new_name, name) if method
22
+
23
+ __overwritten_methods__ << name
24
+
11
25
  instance_eval(body)
12
26
  end
13
27
 
14
28
  def __reset__
15
- __overwritten_methods__.each do |name, method|
16
- method = __overwritten_methods__.delete(name)
17
- instance_eval "undef #{name}"
18
- next if method == :no_such_method
19
- define_singleton_method(name, method)
29
+ __overwritten_methods__.each do |name|
30
+ new_name = HasOverwritenMethods.aliased_name(name)
31
+
32
+ if respond_to?(new_name)
33
+ HasOverwritenMethods.alias(self, name, new_name)
34
+ instance_eval "undef #{new_name}"
35
+ else
36
+ instance_eval "undef #{name}"
37
+ end
20
38
  end
21
- @__overwritten_methods__ = {}
39
+ @__overwritten_methods__ = nil
22
40
  @__shadow__ = nil
23
41
  end
24
42
  end
@@ -21,15 +21,17 @@ module Bogus
21
21
  "have received #{call_str(@name, @args)}"
22
22
  end
23
23
 
24
- def failure_message_for_should
24
+ def failure_message
25
25
  return NO_SHADOW unless Shadow.has_shadow?(@subject)
26
26
  %Q{Expected #{@subject.inspect} to #{description}, but it didn't.\n\n} + all_calls_str
27
27
  end
28
+ alias_method :failure_message_for_should, :failure_message
28
29
 
29
- def failure_message_for_should_not
30
+ def failure_message_when_negated
30
31
  return NO_SHADOW unless Shadow.has_shadow?(@subject)
31
32
  %Q{Expected #{@subject.inspect} not to #{description}, but it did.}
32
33
  end
34
+ alias_method :failure_message_for_should_not, :failure_message_when_negated
33
35
 
34
36
  def method_call
35
37
  proxy(:set_method)
@@ -0,0 +1,9 @@
1
+ require_relative 'with_arguments'
2
+
3
+ module Bogus
4
+ AnyArgs = WithArguments.new{ true }
5
+
6
+ def AnyArgs.inspect
7
+ "any_args"
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Bogus
2
+ class MatchesArgument
3
+ def initialize(&block)
4
+ @block = block
5
+ end
6
+
7
+ def ==(argument)
8
+ @block.call(argument)
9
+ end
10
+ end
11
+ end
@@ -27,10 +27,4 @@ module Bogus
27
27
  args.first
28
28
  end
29
29
  end
30
-
31
- AnyArgs = WithArguments.new{ true }
32
-
33
- def AnyArgs.inspect
34
- "any_args"
35
- end
36
30
  end
@@ -6,7 +6,7 @@ module Bogus
6
6
 
7
7
  def overwrite(object, name)
8
8
  raise "wut?" if name == :__shadow__
9
- return if object.is_a?(FakeObject)
9
+ return if already_delegates_to_shadow?(object, name)
10
10
 
11
11
  object.extend RecordInteractions
12
12
  object.extend HasOverwritenMethods
@@ -25,6 +25,11 @@ module Bogus
25
25
 
26
26
  private
27
27
 
28
+ def already_delegates_to_shadow?(object, name)
29
+ return false unless object.is_a?(FakeObject)
30
+ !Fake.instance_methods.include?(name)
31
+ end
32
+
28
33
  def method_by_name(object, name)
29
34
  object.method(name) if object.methods.include?(name)
30
35
  end
@@ -11,5 +11,9 @@ module Bogus
11
11
  def method_missing(name, *args, &block)
12
12
  raise NoMethodError, "undefined method '#{name}' for #{self}"
13
13
  end
14
+
15
+ def self.undefined?(value)
16
+ value.is_a?(self)
17
+ end
14
18
  end
15
19
  end
@@ -0,0 +1,11 @@
1
+ module Bogus
2
+ module Support
3
+ def self.supress_warnings
4
+ old_verbose = $VERBOSE
5
+ $VERBOSE = nil
6
+ yield
7
+ ensure
8
+ $VERBOSE = old_verbose
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Bogus
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Ruby syntax" do
4
4
  it "is clean" do
5
- bogus_warnings.should == []
5
+ expect(bogus_warnings).to eq([])
6
6
  end
7
7
 
8
8
  def bogus_warnings