ruby - 代码实际上没有在 RSpec 中断言?

标签 ruby rspec

我是 Ruby 的新手,在各种开源软件中我注意到一些 RSpec 描述中的许多“声明”似乎没有完成他们的意图,就像他们想要做出断言,但没有.这些是编码错误还是我遗漏了一些 RSpec 或 Ruby 魔法? (奇怪的重载运算符的可能性?)

例子中,#???添加到可疑行:

(rubinius/spec/ruby/core/array/permutation_spec.rb)

it "returns no permutations when the given length has no permutations" do
  @numbers.permutation(9).entries.size == 0        #???
  @numbers.permutation(9) { |n| @yielded << n }
  @yielded.should == []
end

(discourse/spec/models/topic_link_spec.rb)

it 'works' do
  # ensure other_topic has a post
  post

  url = "http://#{test_uri.host}/t/#{other_topic.slug}/#{other_topic.id}"

  topic.posts.create(user: user, raw: 'initial post')
  linked_post = topic.posts.create(user: user, raw: "Link to another topic: #{url}")

  TopicLink.extract_from(linked_post)

  link = topic.topic_links.first
  expect(link).to be_present
  expect(link).to be_internal
  expect(link.url).to eq(url)
  expect(link.domain).to eq(test_uri.host)

  link.link_topic_id == other_topic.id       #???
  expect(link).not_to be_reflection

  ...

(厨师/规范/单元/chef_fs/parallelizer.rb)

context "With :ordered => false (unordered output)" do
  it "An empty input produces an empty output" do
    parallelize([], :ordered => false) do
      sleep 10
    end.to_a == []                        #???
    expect(elapsed_time).to be < 0.1
  end

(bosh/spec/external/aws_bootstrap_spec.rb)

it "configures ELBs" do
  load_balancer = elb.load_balancers.detect { |lb| lb.name == "cfrouter" }
  expect(load_balancer).not_to be_nil
  expect(load_balancer.subnets.sort {|s1, s2| s1.id <=> s2.id }).to eq([cf_elb1_subnet, cf_elb2_subnet].sort {|s1, s2| s1.id <=> s2.id })
  expect(load_balancer.security_groups.map(&:name)).to eq(["web"])

  config = Bosh::AwsCliPlugin::AwsConfig.new(aws_configuration_template)
  hosted_zone = route53.hosted_zones.detect { |zone| zone.name == "#{config.vpc_generated_domain}." }
  record_set = hosted_zone.resource_record_sets["\\052.#{config.vpc_generated_domain}.", 'CNAME'] # E.g. "*.midway.cf-app.com."
  expect(record_set).not_to be_nil
  record_set.resource_records.first[:value] == load_balancer.dns_name   #???
  expect(record_set.ttl).to eq(60)
end

最佳答案

我认为没有任何特殊行为。我认为您在测试代码中发现了错误。

关于ruby - 代码实际上没有在 RSpec 中断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015316/

相关文章:

ruby-on-rails - Mongoid: 'update_attribute' 与 [models, ...] 与 [model_ids, ...]

ruby-on-rails - 下拉列表选项值为空

ruby - 有人可以帮助解释类创建的 post_initialize 回调吗 (Sandi Metz)

ruby-on-rails-3 - rails rspec http 基本认证测试

ruby - 将 RSpec 匹配器分成多行

ruby-on-rails - capybara 无法找到并填写第一个表单元素

ruby-on-rails - RSpec 功能规范找不到 Rails 引擎的路由

html - 在 HTML 页面上循环访问 Ruby 数组中的值

ruby - 使用带有 jekyll 的 html-proofer 忽略标签

ruby-on-rails - ruby on rails 控制台进程在后台