- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 Controller 规范,以使用购买行项目创建购买。使用我提供的所有属性可以很好地创建购买,但未创建购买行项目。这是我的代码:
工厂.rb
FactoryGirl.define do
factory :purchase do |f|
f.sequence(:po_number) { |n| "0000-00#{n}" }
f.sequence(:ship_to) { |n| "Test Corp#{n}"}
f.sequence(:ship_via) {|n| "Test Delivery#{n}" }
f.sequence(:terms) {|n| "My terms#{n}" }
f.sequence(:qa_requirements) {|n| "Requirment#{n}" }
f.sequence(:justification) {|n| "Justification#{n}" }
f.become_part_of_delivered_product true
f.immediately_delivered_to_stc_client false
f.remain_for_contract_at_stc_as_gov_prop false
f.consumed_in_job_requirements true
f.used_in_repair_of_gov_prop false
f.is_gov_prop_in_possession_of_stc false
f.sequence(:required) {|n| "2011-10-0#{n}" }
f.prd_number_id { |n| n.association(:prd_number).id }
# f.order_for_id { |o| o.association(:user) }
f.submitted_by_id { |s| s.association(:submitted_by).id }
# f.ordered_for_date { Time.now.to_s }
f.submitted_by_date { Time.now.to_s }
f.quality_system_classification_id { |q| q.association(:quality_system_classification).id }
f.after_create { |c| Factory(:purchase_line_item, purchase: c) }
end
factory :purchase_line_item do |f|
f.sequence(:item_description) {|n| "Desc#{n}" }
f.unit_price "100.00"
f.qty "40"
f.sequence(:charge_number) {|n| "000-00#{n}" }
end
end
belongs_to :purchase
validates_presence_of :item_description,
:unit_price,
:qty,
:charge_number
belongs_to :authorized_signers
belongs_to :vendor
belongs_to :purchase_type
belongs_to :quality_system_classfication
belongs_to :order_by, :class_name => "User", :foreign_key => "order_by_id"
belongs_to :submitted_by, :class_name => "User", :foreign_key => "submitted_by_id"
belongs_to :approved_by, :class_name => "User", :foreign_key => "approved_by_id"
belongs_to :purchased_by, :class_name => "User", :foreign_key => "purchased_by_id"
has_many :purchase_line_items
has_many :audits
accepts_nested_attributes_for :purchase_line_items, :allow_destroy => true
validates_presence_of :required,
:ship_to,
:ship_via,
:terms,
:quality_system_classification_id,
:prd_number_id
load_and_authorize_resource
def new
@purchase = Purchase.new
1.times { @purchase.purchase_line_items.build }
end
def create
@purchase = Purchase.new(params[:purchase])
@purchase.without_auditing do
if @purchase.save
flash[:notice] = "Successfully created purchase."
redirect_to @purchase
else
render action: 'new'
end
end
end
require 'spec_helper'
describe PurchasesController do
login_user
describe "POST create" do
before(:each) do
@ability.can :create, Purchase
end
it "should pass the params to purchase" do
purchase = Factory(:purchase)
post :create, purchase: purchase.attributes.except("id")
assigns(:purchase).po_number.should == purchase.po_number
end
it "should pass the params to purchase_line_items" do
purchase = Factory(:purchase)
post :create, purchase: purchase.attributes, purchase_line_items_attributes: purchase.purchase_line_items.first.attributes
assigns(:purchase).purchase_line_items.first.unit_price.should == purchase.unit_price
end
end
end
最佳答案
在 Rails 4 下,这种普遍性对我不起作用:
post :create, purchase: { attributes: p, purchase_line_items_attributes: [pl] }
describe PurchasesController do
def valid_session
controller.stub!(:authorize).and_return(User)
end
describe 'POST :create' do
before do
purchase = FactoryGirl.build(:purchase).attributes
purchase_line_item = { purchase_line_items_attributes: { "#{rand(903814893)}" => FactoryGirl.build(:purchase_line_item).attributes } }
@valid_attributes = purchase.merge(purchase_line_item)
end
context "with valid params" do
before(:each) do
post :create, { purchase: @valid_attributes }, valid_session
end
it "assigns a newly created purchase as @purchase" do
assigns(:purchase).should be_a(Purchase)
end
it "saves a newly created purchase" do
assigns(:purchase).should be_persisted
end
it "redirects to the created purchase" do
response.should redirect_to(Purchase.last)
end
end
context "with invalid params" do
before do
Purchase.any_instance.stub(:save).and_return(false)
post :create, { purchase: @valid_attributes }, valid_session
end
it "assigns a newly created but unsaved purchase as @purchase" do
assigns(:purchase).should be_a_new(Purchase)
end
it "re-renders the :new template" do
response.should render_template("new")
end
it "returns http success" do
response.should be_success
end
end
end
end
params.require(:purchase).permit(...)
attr_accessible
,那么您不必担心使用
attributes.except(...)
进行过滤。
关于ruby-on-rails-3.1 - 传递参数以发布 :create request ruby-on-rails-3. 1, Rspec, factory-girl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894350/
有没有办法定义命名参数(不是模型属性)来控制 factory.Maybe 的行为? 例如:我想创建一个命名参数,通过可能条件控制RelatedFactory的创建,我尝试这样做: # factorie
我正在阅读有关创 build 计模式的文章,并且设法将自己完全混淆在工厂、抽象工厂和工厂方法之间。 我在下面发布了一个代码片段。是否有人可以告诉我这是哪一个以及(如果可能)可以对代码进行哪些更改以使其
我正在尝试让 Factory Girl 正常工作,但在运行测试时我不断收到此错误: /Users/dm/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1
有两个公共(public)接口(interface): LayoutInflater.Factory和 LayoutInflater.Factory2在 android sdk 中,但官方文档无法说明
在我们针对 rails 3.1.0 应用程序的 rspec 测试中,我们同时使用了 Factory.build 和 Factory.attributes_for。我们发现,如果我们将 Factory.
我想创建一个 ADF v2 管道来调用 Azure SQL 数据库中的存储过程。存储过程有输入参数并会返回多个结果集(大约 3 个)。我们需要把它提取出来。我们正在尝试加载到 4 个不同文件的 Blo
注意:问题位于帖子末尾。 我已经阅读了有关抽象工厂与工厂方法的其他 stackoverflow 线程。我理解每种模式的意图。不过我不太清楚这个定义。 Factory Method defines an
如何将 :subscriber factory 中的“email”属性值传递给它的关联:authentication 例如: factory :subscriber, :class => Subscr
我正在使用 Factory Boy为我的 Django 应用程序创建测试工厂。我遇到问题的模型是一个非常基本的帐户模型,它与 django 用户身份验证模型(使用 django < 1.5)具有 On
假设我们有一个 I/O 绑定(bind)方法(例如进行数据库调用的方法)。此方法既可以同步运行,也可以异步运行。也就是说, 同步: IOMethod() 异步: BeginIOMethod() End
我正在开发基于 Spring Boot Batch XML 的方法。在此示例中,我开发了一个如下所示的 CommonConfig。不知何故,我想对 Spring Batch 使用基于 XML 的方法,
更新 回答如下。万一链接站点消失,您可以使用 mocha stub 初始状态并防止覆盖,如... require 'mocha' class OrderTest "other_state") e
我有一个非常简单的 Rails 4 应用程序,想使用 Factory Girl 编写一些示例测试。该应用程序适用于一些简单的 rspec 测试(全部通过),但是当我将“factory_girl_rai
我们的要求是从 Blob 存储中获取数据并转换为其他表格形式。这可以通过使用 polybase 的 Sql DW 来实现。在这种情况下,Azure 数据工厂的真正作用是什么? 我知道 Azure 数据
如何解决Spring中Bean的自动连接歧义?我们有一个 Dessert 接口(interface),并且有实现该接口(interface)(Dessert)的三种不同的甜点(Bean)。 今天的甜点
我目前正在使用 RSpec 和 Factory_Bot_Rails gem 来测试应用程序,但我遇到了以下问题。 当使用 factory_bot_rails 版本 5.0.2 gem 时,我的工厂现在
我有下面的简化代码,可以异步获取多个承运人的运费,我想知道是否值得转换为使用异步/等待方法,如果是的话,最好的方法是什么?或者如果它现在工作正常,真的不值得付出努力吗?谢谢。 List> lstTas
我是初学者,正在尝试运行第一个简单的代码。 请帮我解决以下问题。 Error on line 11 of document : The element type "session-factory"
我正在寻求使我的 Rails 测试更快。我只有 520 个测试,但它们在 bash 中运行需要 62 秒,在 Rubymine 中运行需要 82 秒。 作为典型 Controller 测试的示例,我使
我们计划使用 IBM Web Experience Factory 来进行 future 的增强。从项目管理的角度来看我们正在考虑使用Maven。但由于没有在线帮助来同时使用这两个东西,我们无法继续前
我是一名优秀的程序员,十分优秀!