我正在尝试使用培根在rubymotion中为我的控制器编写一个功能测试。
在我的控制器中,我有一些代码填充了一些数据:
def viewWillAppear(animated)
song_text.text = chant.song_text
...
end
当我将控制器推送到导航控制器时,我正在设置chant
变量。
这在应用程序中运行良好,但是当我尝试在规范的前块中执行此操作时它不起作用,因为viewWillAppear
在块之前被调用并且它以{{1}失败}。
有办法处理这种情况吗?是否有其他方法来填充数据或使用与NoMethodError: undefined method 'song_text' for nil:NilClass
不同的方法?
答案 0 :(得分:3)
通过调用super
方法中的viewWillAppear
方法,我遇到了类似的问题
答案 1 :(得分:0)
RubyMotion支持回答了我的支持票据,表明这是培根中控制器的预期行为。
我通过在培根规格中测试我的课程来解决整个事情:
# spec/chant_controller_spec.rb
class ChantControllerStub < ChantController
def chant
@chant ||= create_chant
end
end
describe "ChantController" do
tests ChantControllerStub
it "displays a chant" do
view('verse').should.not == nil
end
end