class Test::Unit::TestResult

收集 Test::Unit::FailureTest::Unit::Error,以便将它们显示给用户。为此,可以向它添加观察者,从而允许动态更新,例如 UI

常量

CHANGED
FAULT
FINISHED
PASS_ASSERTION

属性

assertion_count[R]
faults[R]
pass_count[R]
run_count[R]
stop_tag[RW]

公共类方法

new() 点击切换源代码

构造一个新的、空的 TestResult

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 44
def initialize
  @run_count, @pass_count, @assertion_count = 0, 0, 0
  @summary_generators = []
  @problem_checkers = []
  @faults = []
  @stop_tag = nil
  initialize_containers
end

公共实例方法

add_assertion() 点击切换源代码

记录一个单独的断言。

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 65
def add_assertion
  @assertion_count += 1
  notify_listeners(PASS_ASSERTION, self)
  notify_changed
end
add_pass() 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 60
def add_pass
  @pass_count += 1
end
add_run(result=self) 点击切换源代码

记录一个测试运行。

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 54
def add_run(result=self)
  @run_count += 1
  notify_listeners(FINISHED, result)
  notify_changed
end
pass_percentage() 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 112
def pass_percentage
  n_tests = @run_count - omission_count
  if n_tests.zero?
    0
  else
    100.0 * (@pass_count / n_tests.to_f)
  end
end
passed?() 点击切换源代码

返回此 TestResult 是否表示成功完成。

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 108
def passed?
  @problem_checkers.all? {|checker| not __send__(checker)}
end
status() 点击切换源代码

返回一个显示结果状态的字符串。

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 80
def status
  if passed?
    if pending_count > 0
      "pending"
    elsif omission_count > 0
      "omission"
    elsif notification_count > 0
      "notification"
    else
      "pass"
    end
  elsif error_count > 0
    "error"
  elsif failure_count > 0
    "failure"
  end
end
stop() 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 98
def stop
  throw @stop_tag
end
summary() 点击切换源代码

返回一个字符串,其中包含此 TestResult 中记录的运行、断言、失败和错误。

# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 73
def summary
  ["#{run_count} tests",
   "#{assertion_count} assertions",
   *@summary_generators.collect {|generator| __send__(generator)}].join(", ")
end
to_s() 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 102
def to_s
  summary
end

私有实例方法

notify_changed() 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 122
def notify_changed
  notify_listeners(CHANGED, self)
end
notify_fault(fault) 点击切换源代码
# File test-unit-3.6.7/lib/test/unit/testresult.rb, line 126
def notify_fault(fault)
  @faults << fault
  notify_listeners(FAULT, fault)
end