Class: Opal::Test::Unit::TestCase
- Inherits:
-
Object
- Object
- Opal::Test::Unit::TestCase
show all
- Includes:
- Assertions
- Defined in:
- lib/opal/test/unit/test_case.rb
Class Method Summary
collapse
Methods included from Assertions
#assert, #assert_equal, #assert_false, #assert_kind_of, #assert_raises, #refute
Class Method Details
.inherited(subclass) ⇒ Object
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/opal/test/unit/test_case.rb', line 7
def self.inherited(subclass)
(@test_cases ||= []) << subclass
subclass.define_singleton_method(:test) do |desc, &block|
TestCase.register_test subclass, OpenStruct.new({ desc: desc, block: block })
end
subclass.define_singleton_method(:setup) do |&block|
TestCase.register_setup subclass, OpenStruct.new({ block: block })
end
end
|
.register_setup(subclass, setup) ⇒ Object
22
23
24
|
# File 'lib/opal/test/unit/test_case.rb', line 22
def self.register_setup(subclass, setup)
((@setups ||= {})[subclass] ||= []) << setup
end
|
.register_test(subclass, test) ⇒ Object
18
19
20
|
# File 'lib/opal/test/unit/test_case.rb', line 18
def self.register_test(subclass, test)
((@tests ||= {})[subclass] ||= []) << test
end
|
.run ⇒ Object
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
|
# File 'lib/opal/test/unit/test_case.rb', line 32
def self.run
success_count = 0
failure_messages = []
errors = []
@test_cases&.each do |test_case|
instance = test_case.new
@tests[test_case]&.each do |test|
begin
if @setups&.has_key?(test_case)
self.setup(@setups[test_case])
end
print("\e[32m")
instance.instance_eval(&test.block)
print "."
success_count += 1
rescue AssertFailed => e
print "\e[31mF\e[32m"
failure_messages << OpenStruct.new({ desc: test.desc, error: e })
rescue Exception => e
print "\e[31mE\e[32m"
errors << OpenStruct.new({ desc: test.desc, error: e })
end
print( "\e[37m")
end
end
puts
OpenStruct.new(success_count: success_count, failure_messages: failure_messages, errors: errors)
end
|
.setup(setups) ⇒ Object
26
27
28
29
30
|
# File 'lib/opal/test/unit/test_case.rb', line 26
def self.setup(setups)
setups.each do |setup|
setup.block.call
end
end
|