-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathrspec_minitest.rb
67 lines (54 loc) · 1.18 KB
/
rspec_minitest.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
class Case
def initialize
@title = "タイトル"
@text = %w(foo? bar? hoge?)
end
# レポートの出力手順を規定
def test_case
test_start
test_each
test_end
end
# レポートの先頭に出力
def test_start
end
# レポートの本文の管理
def test_each
@text.each do |line|
test_line(line)
end
end
# 本文内のLINE出力部分
# 今回は個別クラスに規定するメソッドとする。規定されてなければエラーを出す
def test_line(line)
raise 'Called abstract method !!'
end
# レポートの末尾に出力
def test_end
end
end
class Rspec < Case
def test_start
puts %!before { @title = '%s' }\n! % @title
end
def test_line(line)
puts %!it { expect(@title.%s).to be_true }! % line
end
def test_end
puts 'after { exit }'
end
end
class Minitest < Case
def test_start
puts %!setup { @title = '%s' }\n! % @title
end
def test_line(line)
puts %!test { assert @title.%s }! % line
end
end
# ===========================================
rspec_case = Rspec.new
rspec_case.test_case
3.times { puts ' ' }
minitest_case = Minitest.new
minitest_case.test_case