与弗兰克和黄瓜一起复制资源

发布于 2024-12-08 03:03:24 字数 263 浏览 0 评论 0原文

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

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

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

我的问题是:

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

谢谢。

I have a iPhone project where i use frank and cucumber for acceptance testing.

My application has a feature to collect files from the documents directory and index them in the applications database.

I want to test this feature with cucumber. But this means i have to copy files to the applications documents directory.

My questions are:

  • How do i dynamically make step definitions to copy files?
  • Where do place the resources before they get copied? In what folder structure?
  • How do i reach these files from my step definitions?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

金兰素衣 2024-12-15 03:03:24

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

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

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

标记

We created a helper function to do something like this for injecting images into the simulator gallery..

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

and then on the native code side, we have a helper class called FEX_Helper to aid in anything where we need to modify the app at runtime (RubyMotion code but v. similar to objective-c except for the syntax):

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

Lastly the simulator media path is defined thusly:

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

Hope that helps someone trying to inject files into the simulator for testing.

Mark

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文