3

这是我写为 project_test.rb 的单元测试

require 'test_helper'

class ProjectTest < ActiveSupport::TestCase
  test "projects" do
    visit new_project_path
    click_link "new_Project"
    fill_in "Title", :with => "test app"
    fill_in "Project_type", :with => "basic"
    fill_date "Date_fielded" , :with => "2012/12/3"
    fill_in "Owner name", :with => "chetan"
    fill_in "Status", :with => "new"
    fill_in "Brand", :with => "nike"
    click_link "Create_Project"            
 end
end

我将此视为错误

1) Error:
test_projects(ProjectTest):
NameError: undefined local variable or method `new_projects_path' for #<ProjectTest:0xaa6a25c>
test/unit/project_test.rb:5:in `block in <class:ProjectTest>'

我尝试更改路径以检查路径中的错误,但这没有用,还检查了 rake 路由以检查路径

4

3 回答 3

1

那应该是new_project_path,即project应该是单数而不是复数。有关详细信息,请参阅路径和 URL上的 Rails 路由文档部分。

于 2012-12-06T06:42:07.410 回答
0

您需要从子类ActionDispatch::IntegrationTest化来编写集成测试(以及ActionController::TestCase控制器功能测试)。

ActionDispatch::IntegrationTest为您设置了诸如 url helpers 之类的东西。

于 2012-12-06T06:52:15.243 回答
0

看到一个转储会很有用

rake routes

但我怀疑链接名称是错误的,应该是

new_project_path 

代替

new_projects_path

此外,如果您使用的是 RESTful 路由,则很可能在 new_project_path 页面上没有 new_Project 链接,它更有可能在索引 (projects_path) 上,但 rake 路由将有助于缩小范围。

于 2012-12-06T06:44:28.370 回答