2011-05-06 53 views
1

嘿, 我Rspec的測試失敗,出現錯誤:惱人RSPEC錯誤

syntax error, unexpected kEND, expecting $end (SyntaxError) 

我不知道爲什麼,我的代碼如下(在Xcode中通過側邊欄的箭頭去掉實際內容) :

require 'spec_helper' 

describe UsersController do 
    render_views 
    describe "GET 'show'" do 
    ... 
    end 
    describe "GET 'new'" do 
    ... 
    end 
    describe "POST 'create'" do 
    ... 
    end 
end 

http://snipt.org/xtpm

+0

你的語法錯誤發生在哪一行?你可以發佈完整的回溯? – 2011-05-06 21:35:45

回答

0

在您發佈的源鏈接,你的很多塊的使用代替。這肯定會導致你所描述的問題。

+0

當他發佈代碼時,他告訴snipt.org它是ABAP代碼,所以它應用了額外的格式。在明文版本中,它看起來很好:http://snipt.org/xtpm/plaintext – 2011-05-07 01:58:04

0

全部代碼通常是錯誤表明您在你的程序得到了一個額外的end地方。您應該檢查生成錯誤的文件中的所有內容是否均衡。一種方法是剪出大塊,看看你是否可以直接「運行」文件,直到你縮小到精確的位置。作爲一個說明,如果你做出嚴格的努力來保持一致的縮進,那麼這些類型的錯誤將更加明顯。從外觀的角度來看,也許是由於製表符的粘貼和轉換,這些塊都遍佈各處。

在任何情況下,粘貼的代碼至少可以毫無例外地通過解析器。

0

正常情況下,這個錯誤意味着你的end太少了,它遇到了文件的末尾,並期待仍然會找到一條命令end。 但是,從您顯示的代碼中直接看不到我。您的壓痕是非常不一致的,沒有幫助

我沒有看到什麼讓它的第一眼:)明確:如果你正在使用rspec1,the documentation變革進行測試時,建議使用{},而不是do .. end。所以你的情況:

lambda { 
    post :create, :user => @attr 
}.should change(User, :count).by(1) 

在rspec2,你應該寫

expect { ... }.to change 

所以你的情況

expect { post :create, :user => @attr }.to change(User, :count).by(1) 

希望這有助於。