2012-02-13 90 views
3

所以我有下面的方法,这是预计加载文件。用黄瓜验证错误

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

我用黄瓜来验证这个工程,我用下面的步骤定义:

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 

但是,由于异常是作为“步骤”中的load_file方法调用的一部分引发的,因此如何在“然后”步骤中对其进行验证。

有人可以帮忙吗?

回答

-1

将@ loader.load_file放在then步骤中。

+0

在以后的处理这种情况下,逻辑都将丢失。 – p0deje 2012-02-13 09:36:21

+0

@ p0deje - 我宁愿给一个不同的解决方案比降级 – 2012-02-13 12:01:25

+0

如果我有一个,我肯定会给。这就是为什么我+1问题(这是相当复杂的情况下)和-1你的答案(它不解决它) – p0deje 2012-02-13 12:39:50

0

在该步骤中捕获错误并验证当时步骤中存在的错误。

我不做红宝石,所以我不知道语法,但基本上你想在伪代码是这样的:

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