我最近开始在铁轨上学习红宝石。我完成了weblog walkthru(下面的链接),并希望为它进行测试。我从博客演示的视频版本中进行了这项功能测试。现在我想让这个测试工作用于netbeans版本,其实际上在评论与帖子的关系方面有不同的结构。根据我收集的内容,在netbeans版本中,所有评论视图都通过帖子视图完成。现在需要修改此测试方法以适应这种情况。如何用注释创建帖子对象?我不知道Ruby中的对象是如何工作的。喜欢如何实例化等。
test "should create comment and redirect to post without javascript" do
p= Post.create!(:title => 'hello',:body => 'world')
post :create, :post_id => p.id, :comment => {:body =>'nice!'}
assert_redirected_to post_url(p)
assert_equal 'nice!',p.comments.first.body
end
答案 0 :(得分:1)
根据我收集的内容,您试图模仿用户在现有帖子上提交评论。您可以做的是运行项目,打开您的网页,导航到帖子并创建评论。然后,检查服务器日志文件并找到发布该注释所导致的部分。你会看到这样的东西:
Processing PostsController#create (for 127.0.0.1 at 2009-06-27 16:54:18) [POST]
Session ID: 17134c01441c1e26e17baeee4681dd3b
Parameters: {"action"=>"create", "controller"=>"posts", "comment"=> {"foo" => "bar"}}
然后在你的测试中模仿,写下类似的东西:
post :create, :comment => {:foo => "bar"}
这应该会对帖子发表新的评论。
但是,你应该这样做只在学习的时候!一旦掌握了一切,先编写测试,概述应该工作的方式,以及然后开始实施,直到它完成。