RubyMotion,当我运行默认测试时,得到一个窗口[FAILED - 2。==(1)失败]

时间:2015-07-19 12:07:21

标签: ruby rubymotion

想知道是否有人遇到或遇到过这个问题,我只是运行了使用RubyMotion生成的默认测试' rake spec

describe "Application 'UIAlert'" do                                                                                            
 before do
   @app = UIApplication.sharedApplication
 end

 it "has one window" do
   @app.windows.size.should == 1
 end
end

失败并出现此错误:

Application 'UIAlert'
 - has one window [FAILED - 2.==(1) failed]

Bacon::Error: 2.==(1) failed
  spec.rb:769:in `satisfy:': Application 'UIAlert' - has one window
  spec.rb:783:in `method_missing:'
  spec.rb:316:in `block in run_spec_block'
  spec.rb:459:in `execute_block'
  spec.rb:316:in `run_spec_block'
  spec.rb:331:in `run'

我不确定我的应用程序怎么可能有多个窗口,我错过了什么? :(

1 个答案:

答案 0 :(得分:1)

您使用的是iOS8 SDK吗? iOS8引入了UITextEffectsWindow - 这是在应用程序窗口之外创建的,所以@ app.windows.size == 2而不是1.您可以通过运行应用程序并在REPL中查看2个窗口对象来检查这一点。

(main)> UIApplication.sharedApplication.windows[0]
=> #<UIWindow:0x11280d700>
(main)> UIApplication.sharedApplication.windows[1]
=> #<UITextEffectsWindow:0x10b6127a0>

我建议将默认规范修改为测试应用程序窗口具有默认rootViewController的规范。