2014-10-04 54 views
0

我正在Rails中开发练习。我只需要创建一些用户并让他们登录。当创建用户时,我需要发送一个json响应(我知道该怎么做),但我不知道如何使用RSPEC测试该响应是否正确。这是我的尝试:测试JSON响应的POST Rails

describe "with correct input" do 
    before { @user.save } 
    specify { expect(User.count).to eq(1) } 

    it "should respond json" do 
     post '/signup.json', :user => {:name => 'ppppp', :login => '1234567890'} 
     json = JSON.parse(response.body) 
     expect(json["user_name"]).to eq('ppppp') 
     expect(json["login_count"]).to eq('1234567890') 
    end 
end 

当我尝试这个,我得到错误:NoMethodError:未定义的方法`后”

谢谢!!

回答

0

这是控制器规格吗?如果是,则将规格文件放在spec/controllers文件夹下。

默认情况下,Rspec将控制器规格假定为在此文件夹下。如果该文件不在控制器文件夹中,则将:type => :controller添加到示例组。

请参阅Rspec documentation

希望这会有所帮助。

+0

谢谢!它位于spec/models文件夹中。如何添加:type =>:controller?我不知道我必须把它写在哪里。再次感谢你! – Naster 2014-10-04 12:30:30

+0

尝试将其添加到描述的方法,如果它不起作用,请Google它。 – 2014-10-04 13:07:07