iphone - 与弗兰克和 cucumber 一起复制资源

标签 iphone cucumber bdd

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

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

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

我的问题是:

  • 如何动态创建步骤定义来复制文件?
  • 资源在被复制之前放置在哪里?在什么文件夹结构中?
  • 如何从我的步骤定义中访问这些文件?

谢谢。

最佳答案

我们创建了一个辅助函数来执行类似的操作,将图像注入(inject)模拟器图库中。

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

然后在 native 代码方面,我们有一个名为 FEX_Helper 的帮助程序类,可以帮助我们在运行时修改应用程序(RubyMotion 代码,但除语法外与 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

希望对尝试将文件注入(inject)模拟器进行测试的人有所帮助。

标记

关于iphone - 与弗兰克和 cucumber 一起复制资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626524/

相关文章:

iphone - 在 iOS 中是否可以拥有一个模型/ View 并创建第二个 View 以在第二个屏幕上自动复制第一个 View ?

Java:@AfterStep、@BeforeStep 在 cucumber 中不起作用

ruby - 良好的 cucumber 教程不依赖于 rails

tdd - BDD/TDD vs JAD?

iphone - 如何设置 UITableView 中文本的格式?

iPhone imageView图层maskToBounds导致滚动缓慢

java - cucumber 异常 : java. lang.ClassNotFoundException : cucumber. io.ResourceLoader

visual-studio-2010 - 在 VS2010 中执行 BDD 的标准方法是什么?

testing - BDD 特性和场景

iphone - iPhone 如何按升序对 NSMutableArray 进行排序?