我在控制器PlanetsController中使用名为“ generate_coordinate ”的方法(位于 app/helpers/planets_helper.rb 中)。
运行测试时,rspec 似乎无法访问它,因此导致我的测试套件失败,因为地球没有任何坐标。
我试图在utility.rb文件的开头包含我的助手,但它没有用
include ApplicationHelper
include PlanetsHelper
我还尝试在 utility.rb 文件中编写我的方法,但没有取得更多成功。
我读了这篇文章“ Where/how to include helper methods for capybara integration tests ”,但它对我没有帮助。
我还阅读了“存根”函数,但因为我不明白它可以用来做什么,所以对我没有多大帮助......
任何的想法 ?
这是我的测试代码(spec/requests/planet_pages_spec.rb)
describe "Create planet" do
before do
visit new_planet_path
fill_in "Name", with: "MyPlanet"
click_button "Validate"
end
it {should have_selector('h1', text: "Planet")}
end
当点击“Validate”时,它会导致PlanetsController调用“generate_coordinate”方法
def create
@planet = Planet.new(name: params[:planet][:name],
coordinates: generate_coordinates, [...])
if @planet.save
redirect_to action: 'index'
else
render 'new'
end
这是 generate_coordinate 方法,它似乎从未被 rspec 调用过(而当我使用浏览器导航时)
module PlanetsHelper
def generate_coordinates
coordinates = "0.0.0.0"
end
结尾