【发布时间】:2012-02-20 17:57:51
【问题描述】:
给定一个具有几个实例变量和一些方法的类。一些实例变量可以通过attr_reader 和attr_accessor 访问。因此,其他人是私人的。
一些私有实例变量在其中一个实例方法中设置,并在另一个方法中读取/使用。
为了测试,我正在使用 RSpec。由于我对 Ruby 还很陌生,并且想把所有事情都做好,所以我将我的测试定义为相当细粒度的。因此,每个实例方法都有一个describe 块,它们本身被划分为contexts 和its 的子集。一般环境前提条件用before定义。
但是,当测试其中一个方法时,它正在使用但未设置一个私有变量,我需要调用另一个方法,它正在设置这个变量。这对我来说似乎相当超重并且不是模块化的。
有没有办法将私有实例变量强制为某个值。类似于“提取”带有Object::instance_eval(:var) 的私有实例变量的值。
【问题讨论】:
标签: ruby testing rspec access-specifier