停止执行define_method创建的方法

时间:2014-10-02 04:02:49

标签: ruby watir

以下是我的计划:

class Raja < Watir::TestCase
  testName.each_index do |i|  # test case has sequence of test cases.
    define_method(testName[i]) do
    end
  end
end

有十个测试用例。第一个循环运行十次,因此define_method将创建十个方法,如def test_1def test_2,...,def test_10。如果在test_3发生了一些错误,我需要停止进一步执行该方法的其余部分。从test_4test_10不应该执行。我怎么能停止执行呢?

1 个答案:

答案 0 :(得分:0)

您可以创建一个实例变量,该变量负责知道是否执行该方法。

class Raja < Watir::TestCase
  attr_accessor :execute
  alias_method  :execute?, :execute

  testName.each_index do |i|  # test case has sequence of test cases.
    define_method(testName[i]) do
      return unless execute?

      # Your code here.
    rescue
      self.execute = false
    end
  end
end