用frank和cucumber复制资源

时间:2011-10-02 13:08:05

标签: iphone cucumber bdd

我有一个iPhone项目,我使用frank和cucumber进行验收测试。

我的应用程序具有从文档目录中收集文件并在应用程序数据库中对其进行索引的功能。

我想用黄瓜测试这个功能。但这意味着我必须将文件复制到应用程序文档目录。

我的问题是:

  • 如何动态制作步骤定义以复制文件?
  • 资源在被复制之前放在哪里?在什么文件夹结构?
  • 如何从步骤定义中获取这些文件?

感谢。

1 个答案:

答案 0 :(得分:1)

我们创建了一个辅助函数,用于将图像注入模拟器库中。

def init_simulator_images(num_images)
  (1..num_images.to_i).each do |n|
    target_file = "IMG_000#{n}.JPG"
    begin
      File.stat("#{ENV['simulator_media_path']}/#{target_file}")
    rescue Errno::ENOENT
      app_exec 'FEX_loadPhotoLibraryImage:', "test/#{target_file}"
    end
  end
end

然后在本机代码方面,我们有一个名为FEX_Helper的辅助类,以帮助我们在运行时需要修改应用程序的任何内容(RubyMotion代码,但v。类似于objective-c,语法除外):

def FEX_loadPhotoLibraryImage(imageStr)
  img = UIImage.imageNamed(imageStr)
  UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil)
end

最后,模拟器媒体路径如此定义:

def simulator_media_path
  "#{self.simulator_version_path}/Media/DCIM/100APPLE"
end

def simulator_path
  "/Users/#{self.user}/Library/Application\ Support/iPhone\ Simulator"
end

def simulator_version_path
  "#{self.simulator_path}/#{self.simulator_version}"
end

希望有助于某人尝试将文件注入模拟器进行测试。

标记