我是Ruby on Rails的新手,我现在正在做http://ruby.railstutorial.org.
根据我的理解,该语言应该严格遵循这个DRY标准,但在本教程中涉及到测试驱动开发时,它是如此WET.
例如
it { should have_link('Users', href: users_path) }
it { should have_link('Profile', href: user_path(user)) }
it { should have_link('Settings', href: edit_user_path(user)) }
it { should have_link('Sign out', href: signout_path) }
Run Code Online (Sandbox Code Playgroud)
在这里,我们有很多行几乎看起来一样.
我试过这个
it "should have following links from this array" do
[
['Users', href: users_path],
['Profile', href: user_path(user)],
['Settings', href: edit_user_path(user)],
['Sign out', href: signout_path]
].each { |a| page.should have_link(a[0], a[1]) }
end
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但它看起来很丑陋而且行数更多.
所以我想知道是否有更好的方法将数组添加到have_link方法.
我现在有一个好主意,但我不知道如何使它工作.
这是我的帮手(当我创建这个问题时看起来不像它.它是在MichaëlWitrant的答案之后编辑的)
RSpec::Matchers.define :have_these_links do |*links|
match do |actual| …
Run Code Online (Sandbox Code Playgroud) 我班上有一个属性,我会选择.只有probem是该属性使用Guid并且是标准所必需的.我不知道如何使它可以为空.
我想要完成的是将membershipprovider扩展为一个新表,Groups,并在Group和Users之间建立一对多的链接.
财产:
public virtual Guid GroupId { get; set; }
public virtual Group Group { get; set; }
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能使Guid属性成为可空?