我forked the country_code_select gem并制作了fix,因为它没有为嵌套的fields_for模型正确生成ID属性。
我以前从未写过测试或打过宝石 - 但我正在尝试。这对我来说是全新的。
你能帮我写一下fix的测试用例,以便我可以提交我的第一个宝石补丁吗?
我尝试在form_for
中使用fields_for
和spec/form_helpers_spec
,但这只是让我陷入了一个兔子洞。
可能有用的其他信息:
Client.rb
has_one :billing_address
accepts_nested_attributes_for :billing_address
查看:
<%= form_for @client do |f| %>
<%= f.fields_for :billing_address, @client.billing_address do |ff| %>
<%= ff.country_code_select(:country_code) %>
...
答案 0 :(得分:0)
你已经有了测试!在你的分叉回购中,有this line。只需复制此测试用例以创建新的比较,如果您的修改可以正常工作,并且不会制动旧规格。
如果您需要更多示例或学校教育,请查看how rails tests view helpers。但请注意,他们为自己编写这些帮助程序,并使用其他测试框架而不是fork。
不太准确的例子:
it "should output a valid select field for fields_for nested attributes" do
# in the next line, pass such parameters to this function
# so that your particular modification to the code is triggered
output = country_code_select(:client, :billing_address, :country_code)
# and here check if your code works as it should
# I think you're modifying how id is assigned with nesting fields,
# so test something like this:
output.should match(/select id="client_billing_address_country_code"/)
end
我还建议您阅读有关测试的内容,如果您想深入了解它。它有一个很多,但我发现TDD帮助我生成更好,更可靠的代码,我认为值得额外的努力。
由于这是您的第一个贡献,欢迎来到开源社区并祝您好运:)