【发布时间】:2019-12-08 13:19:36
【问题描述】:
我需要自动分级一个 Ruby 练习,使用 Rspec 进行测试
这个类是纯 ruby 的,我只需要验证属性(存在性和可访问性)以及在初始化程序中接收到的参数数量
# lib/card.rb
class Card
attr_reader :number, :suit
def initialize(number, suit)
@number = number
@suit = suit
end
end
# spec/card_spec.rb
require "spec_helper"
require_relative "../lib/card"
describe Card do
let(:subject) do
Card.new(1, "D")
end
it { expect(Card).to respond_to(:new).with(4).arguments }
end
➜ rspec spec/card_spec.rb
.
Finished in 0.00431 seconds (files took 0.12135 seconds to load)
1 example, 0 failure
尽管初始化程序接收 2 个参数并且我在测试中指定了 4 个参数,但测试仍在通过
【问题讨论】:
-
由于某种原因,
respond_to似乎无法与new方法一起正常工作。但它适用于其他自定义方法。可能是一个错误。 -
it { expect(Card).to respond_to(:new).with(2).arguments }测试self.new中的Card方法,这显然不是我们所需要的。 :-/