こんにちは、私は完全にこの1つを失っています。有効な手動呼び出しを指定していますか?
私は、ユーザーが入力すると、ajax経由でフィールドを検証するのに役立つコードスニペットをオンラインで見つけました。だから私はそれの一部に対して仕様を書こうとしており、私はそれを通過することができません。
ここで私はこのエラーを取得するコード
def validate
field = params[:field]
user = User.new(field => params[:value])
output = ""
user.valid?
if user.errors[field] != nil
if user.errors[field].class == String
output = "#{field.titleize} #{user.errors[field]}"
else
output = "#{field.titleize} #{user.errors[field].to_sentence}"
end
end
render :text => output
end
、ここでは私のテストはこれまで
describe "POST validate" do
it "retrieves the user based on the past in username" do
mock_errors ||= mock("errors")
mock_errors.stub!(:[]).and_return(nil)
User.should_receive(:new).with({'username'=>"UserName"}).and_return(mock_user)
mock_user.should_receive(:valid?).and_return(true)
mock_errors.should_receive(:[]).with("username").and_return(nil)
put :validate, :field=>'username', :value=>'UserName'
response.should == ""
end
end
あるのです - スペック::モック)が
1 :: MockExpectationError で'UsersController POST は、過去に基づいてユーザーを取得します ( 『ユーザ名』)私は世界でuser.errorsへの呼び出し[フィールド]を模擬する方法を見つけ出すように見えることはできません
で[]:ername」モック 『のエラーが』 予期しないメッセージを受信しました。理想的には、この仕様はハッピーパスをテストし、エラーはありません。私は検証の失敗のために別のものを書きます。