Ruby on rails rspec ruby on rails关于控制器的新手问题
我对RoR或rspec还不熟悉,正在努力学习。首先,我找不到适合新手的教程,只是高级教程,因为我想学习RoR,同时还要学习测试。 我正在为简单的CRUD控制器编写测试,但我不知道如何测试例如,参数是否传递到我的create操作,以及它是否被保存Ruby on rails rspec ruby on rails关于控制器的新手问题,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我对RoR或rspec还不熟悉,正在努力学习。首先,我找不到适合新手的教程,只是高级教程,因为我想学习RoR,同时还要学习测试。 我正在为简单的CRUD控制器编写测试,但我不知道如何测试例如,参数是否传递到我的create操作,以及它是否被保存 def create @item = TextItem.new(params[:item]) if @item.save redirect_to(:action => 'index') else
def create
@item = TextItem.new(params[:item])
if @item.save
redirect_to(:action => 'index')
else
render('new')
end
end
我认为更好的方法是熟悉rails和ruby,然后使用test/unit或minitest或rspec、cumber或许多其他测试技术深入研究tdd/bdd 我建议你买一本书/电子书开始,比如这本,电子书只要24美元。你会节省很多时间 有时Rspec有点棘手/神奇,如果没有rails/ruby的基础知识,就很难开始使用它 我不建议您一次性学习rails和rspec 顺便说一句,此操作的规格如下所示:
describe "POST create" do
let(:item) { mock_model(TextItem) }
before(:each) do
TextItem.stub(:new).and_return(item)
end
it "saves the item" do
item.should_receive(:save)
post :create
end
context "when the item saves successfully" do
before(:each) do
item.stub(:save).and_return(true)
end
it "redirects to the items index" do
post :create
response.should redirect_to(:action => "index")
end
end
context "when the item fails to save" do
before(:each) do
item.stub(:save).and_return(false)
item.stub_chain(:errors, :empty?).and_return(false)
end
it "renders the new template" do
post :create
response.should render_template(:new)
end
end
end
我发现Michael Hartl的RoR教程是学习RoR和rspec的一个很好的资源。