使用Cucumber验证错误

时间:2012-02-13 06:24:22

标签: ruby-on-rails ruby testing cucumber bdd

所以我有以下方法,预计会加载一个文件。

class Loader
    def load_file(file_to_load)  
        if not FileTest.exists?(file_to_load)
          raise "File Does Not Exist"
        end
    end
end  

我正在使用Cucumber来验证这项工作,我正在使用以下步骤定义:

Given an import file doesn't exist
When a user runs the loader
Then the import fails

“何时”步骤的步骤定义如下所示:

When /^a user runs the loaderd$/ do
   @loader = MovieLoader.new
   @loader.load_file
end

Then /^the import fails%/

end

但是,由于异常是在When步骤中作为load_file方法调用的一部分引发的,我如何在'Then'步骤中验证它。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

在when步骤中捕获错误并验证当前步骤中是否存在错误。

我不做ruby,所以我不知道语法,但基本上你想要这样的伪代码:

When /^a user runs the loaderd$/ do
   @loader = MovieLoader.new
   try
      @loader.load_file
   catch
      error = "load failed"
end

Then /^the import fails%/
    if (error != "load failed")
        raise "expected error was not raised"
end

答案 1 :(得分:-1)

将@ loader.load_file放入当时的步骤。