当我运行测试时,我收到此错误:
1) posts when logged in should delete posts Failure/Error: expect{click_on "Usuń spot"}.to change(Post.count).by(1) TypeError: nil is not a symbol
posts_spec.rb
describe "when logged in" do let(:user) {FactoryGirl.create(:user)} let!(:post) {user.posts.create(content: "Brilliant! I just saw the most amazing ever. She looked so cute!")} content = "Example of spot post,for TDD. It's not real spot. Not yet." before(:each) { log_user(user) } it "should delete posts" do visit user_post_path(user,post) expect{click_on "Usuń spot"}.to change(Post.count).by(1) end
show.haml
[email protected]=link_to "Usuń spot",[@user,@post],method: :delete
posts_controller.rb
def show @user = current_user @post = @user.posts.find(params[:ID]) end def destroy @user = current_user @post = @user.posts.find_by_ID(params[:ID]) @post.destroy flash[:success] = "Post destroyed" redirect_to root_url end解决方法 更改需要一个块,因此可以对其进行两次评估以验证值的更改.
这应该工作:
expect{click_on "Usuń spot"}.to change{Post.count}.by(1)总结
以上是内存溢出为你收集整理的ruby-on-rails – Nil不是Rspec的象征全部内容,希望文章能够帮你解决ruby-on-rails – Nil不是Rspec的象征所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)