2012-02-13 100 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