This repository has been archived by the owner on Nov 11, 2017. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
stubba_example_test.rb
102 lines (76 loc) · 2.23 KB
/
stubba_example_test.rb
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
require File.expand_path('../../test_helper', __FILE__)
require 'mocha'
class Widget
def model
'original_model'
end
class << self
def find(options)
[]
end
def create(attributes)
Widget.new
end
end
end
module Thingy
def self.wotsit
:hoojamaflip
end
end
class StubbaExampleTest < Test::Unit::TestCase
def test_should_stub_instance_method
widget = Widget.new
widget.expects(:model).returns('different_model')
assert_equal 'different_model', widget.model
end
def test_should_stub_module_method
should_stub_module_method
end
def test_should_stub_module_method_again
should_stub_module_method
end
def test_should_stub_class_method
should_stub_class_method
end
def test_should_stub_class_method_again
should_stub_class_method
end
def test_should_stub_instance_method_on_any_instance_of_a_class
should_stub_instance_method_on_any_instance_of_a_class
end
def test_should_stub_instance_method_on_any_instance_of_a_class_again
should_stub_instance_method_on_any_instance_of_a_class
end
def test_should_stub_two_different_class_methods
should_stub_two_different_class_methods
end
def test_should_stub_two_different_class_methods_again
should_stub_two_different_class_methods
end
private
def should_stub_module_method
Thingy.expects(:wotsit).returns(:dooda)
assert_equal :dooda, Thingy.wotsit
end
def should_stub_class_method
widgets = [Widget.new]
Widget.expects(:find).with(:all).returns(widgets)
assert_equal widgets, Widget.find(:all)
end
def should_stub_two_different_class_methods
found_widgets = [Widget.new]
created_widget = Widget.new
Widget.expects(:find).with(:all).returns(found_widgets)
Widget.expects(:create).with(:model => 'wombat').returns(created_widget)
assert_equal found_widgets, Widget.find(:all)
assert_equal created_widget, Widget.create(:model => 'wombat')
end
def should_stub_instance_method_on_any_instance_of_a_class
Widget.any_instance.expects(:model).at_least_once.returns('another_model')
widget_1 = Widget.new
widget_2 = Widget.new
assert_equal 'another_model', widget_1.model
assert_equal 'another_model', widget_2.model
end
end