我有控制器:
class AccountController < ApplicationController
def index
end
private
def current_account
@current_account ||= current_user.account
end
end
Run Code Online (Sandbox Code Playgroud)
如何current_account使用rspec 测试私有方法?
PS我使用Rspec2和Ruby on Rails 3
给定一个带有几个实例变量和一些方法的类.一些实例变量可通过attr_reader和设置访问attr_accessor.因此其他人是私人的.
某些私有实例变量在其中一个实例方法中设置,并在另一个方法中读取/使用.
为了测试我正在使用RSpec.由于我还是Ruby的新手,并且想要把所有事情都搞定,我将我的测试定义得相当精细.因此,我describe为每个实例方法都有一个块,它们本身被划分为contexts和its 的子集.一般环境先决条件定义为before.
但是,当测试其中一个方法,即使用但未设置其中一个私有变量时,我需要调用另一个方法,即设置此变量.这似乎相当超重,对我来说不是模块化的.
有没有办法强制私有实例变量到某个值.类似于" 剥离 "私有实例变量的值Object::instance_eval(:var).