我有一个 class Point
attr_reader :x, :y
def initialize(x,y)
@x,@y = x,y
PointStats.instance.record(self)
end
def self.unrecorded(x,y)
instance = new(x,y)
end
ORIGIN = Point.unrecorded(0,0)
UNIT_X = Point.unrecorded(1,0)
UNIT_Y = Point.unrecorded(0,1)
# and the rest follows ...
,其DashboardController
方法与我的index
模型相互作用:
User
我正在编写此def index
user = User.first
log_data = user.logs
# more controller code here that uses the log_data
end
方法的控制器规范。我为我的用户模型定义了FactoryGirl工厂。在单元测试中,我应该使用某种index
模拟user
,还是应该使用FactoryGirl创建instance_double
对象?关于如何测试控制器是否存在惯例/标准/趋势?
答案 0 :(得分:0)
我想说没有必要嘲笑用户对象 - 它只会让你的规格远离现实。你可以高兴地设置你的规格:
describe DashboardController, :type => :controller do
let(:user) { create(:user) }
describe "#index" do
it "your test here" do
####
end
end
end
在您访问current_user
对象的另一个例子中,您可能会尝试使用以下内容:
let(:user) { create :user }
before do
allow(controller).to receive(:current_user).and_return(user)
end