Lazy is the way to go:

  [:user_id, :product_id, :person_id, :status, :purpose, :site_id].each do |field|
    it “should have required #{field}” do
      lambda {
        lead = create_lead(field => nil)
        lead.should have_at_least(1).errors_on(field)
      }.should_not change(Lead,:count)
    end
  end