【问题标题】:is it possible to stub an instance variable in rspec in a non controller test?是否可以在非控制器测试中存根 rspec 中的实例变量?
【发布时间】:2012-02-17 20:06:20
【问题描述】:

我通常会在我的控制器中设置一个实例变量,但我正在单元测试一个模型方法,该方法取决于控制器中设置的实例变量的值。

使用 rspec,是否可以为测试存根或设置此实例变量?

到目前为止,我所看到的一切都表明我只能从控制器或视图测试中存根/设置实例变量,而不是模型测试。

【问题讨论】:

  • 我要进行单元测试的代码是:def sort_special if @myvar.present? special_sort else regular_sort end end

标签: rspec stub ivar


【解决方案1】:

我正在对一个模型方法进行单元测试,该模型方法取决于控制器中设置的实例变量的值。

这是一个错误的方法,MVC 要求我们在这三个组件之间建立强大的边界并将所有内容集成到控制器中。如果您真的必须这样做,您至少可以显示您使用控制器变量的代码吗?

【讨论】:

  • 好的,有道理。通常,我会在控制器中实例化实例变量,但我试图在控制器单元测试之外测试有问题的方法。这有效吗?
  • 是的,您使用模型的单元测试来测试您的模型。但是将模型绑定到控制器的目的是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多