ruby - 我应该打开类的实例变量只是为了测试验证吗?

标签 ruby oop bdd

我是 BDD 新手,我发现很多情况下我都将实例变量添加到 attr_accessor,以便我的测试有一种简单的方法来验证它们是否处于应有的状态。但这感觉有点肮脏,因为没有其他类需要这些信息,所以我只是将其公开用于测试。这是标准还是糟糕设计的标志?

例如,我有一个集合类,它存储一个对象,然后将其提交到批处理数组中。导入结束时,使用批处理数组将批处理插入到数据库中。但无需随时检查批处理的状态。但在测试中,我想确保批处理处于我认为的状态,因此打开该变量进行检查。事实上,没有在代码中进行检查才是真正的问题吗?

最佳答案

使用 instance_variable_get 适合您吗?

>> class Foo
..   def initialize
..     @foo = 'bar'
..     end
..   end #=> nil
>> Foo.new.instance_variable_get(:@foo) #=> "bar"

关于ruby - 我应该打开类的实例变量只是为了测试验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746568/

相关文章:

python - 如何使用 Behave 从 Python BDD 功能测试中获取代码覆盖率数据?

ruby - Linux 上 ruby​​ 脚本中的环境变量

ruby-on-rails - 在 seeds.rb 中关闭验证

arrays - Ruby - 基于另一个数组过滤哈希数组

asp.net-mvc - 如何使用 SpecFlow、Cucumber 或其他 BDD 验收测试框架在不同的测试类型之间进行选择?

rspec - Rspec 中的命令式和声明式步骤

ruby-on-rails - 覆盖 Controller 操作后,事件管理布局丢失

java - 在数组列表中的各种对象上调用子方法

java - 如何使用 OOP 打印 arrayList 中的最小值?

javascript - 将回调传递给对象的方法