2010-08-09 71 views
2

我有這樣的規格不匹配:RSpec的測試時,它應該

it 'can parse armies with only section headers' do 
    list = <<-LIST 
    :Core 
    :Special 
    :Omgg 
    :Moarheaders 
    LIST 
    expected_output = "## Core\n## Special\n## Omgg\n## Moarheaders\n" 
    parsed = @parser.parse(list) 
    parsed.should_not be_nil 
    parsed.transform.should be expected_output 
end 

其中產生這樣的輸出:

expected ## Core 
## Special 
## Omgg 
## Moarheaders 
, got "## Core\n## Special\n## Omgg\n## Moarheaders\n" 

如果我刪除了雙引號,我得到這個輸出:

expected ## Core\n## Special\n## Omgg\n## Moarheaders\n, 
got  "## Core\n## Special\n## Omgg\n## Moarheaders\n" 

如果我添加引號我expected_output,我得到這個: (expected_output = '"## Core\n## Special\n## Omgg\n## Moarheaders\n"'

expected "## Core\n## Special\n## Omgg\n## Moarheaders\n", 
got  "## Core\n## Special\n## Omgg\n## Moarheaders\n" 

這是怎麼回事?

我無法獲得Treetop結果來評估\ n作爲換行符,並且我無法得到expected_output來匹配,無論我嘗試什麼。

我很困惑。

回答

1

你嘗試:

parsed.transform.should == expected_output

be可能會使用,而不是比較字符串值對象的身份。

+0

啊,不敢相信我忽略了這一點。非常感謝。這是訣竅。 :) – 2010-08-09 23:24:23

+0

嗯,我不知道這樣做,所以我也學到了一些東西。 PS:你介意接受答案嗎? – zetetic 2010-08-10 00:09:41