0

我有很多这样的代码:

context 'with invalid attributes' do
  it "does not save link to database" do
    post :create, board_id: @board, link: FactoryGirl.attributes_for(:link, url: "")
    expect(@board.links.count).to eq 0
  end

  it 're-render :new template' do
    post :create, board_id: @board, link: FactoryGirl.attributes_for(:link, url: "")
    expect(response).to render_template :new
  end

  it 'sets an error flash message' do
    post :create, board_id: @board, link: FactoryGirl.attributes_for(:link, url: "")
    expect(flash[:error]).to_not be_nil
  end
end

我怎样才能干燥它?所以我不会post :create, board_id: @board, link: FactoryGirl.attributes_for(:link, url: "")在每种情况下都有线路?

4

1 回答 1

1

你可以试试before(:each)阻止

context 'with invalid attributes' do
  before(:each) do
    post :create, board_id: @board, link: FactoryGirl.attributes_for(:link, url: "")
  end

  it "does not save link to database" do
    expect(@board.links.count).to eq 0
  end

  it 're-render :new template' do
    expect(response).to render_template :new
  end

  it 'sets an error flash message' do
    expect(flash[:error]).to_not be_nil
  end
end    
于 2013-06-24T17:52:19.200 回答