弗兰克:是否可以在Objective-C中编写步骤定义

时间:2011-03-10 04:41:29

标签: iphone objective-c cucumber

  1. 如何在Objective-C中编写步骤定义? E.g:

    Given(@"^the address book is empty$", ^{
        ABAddressBookRef addressBook = ABAddressBookCreate();
        CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
        for (int i = 0; i < CFArrayGetCount(people); i++) {
            ABAddressBookRemoveRecord(addressBook,
                    CFArrayGetValueAtIndex(people, i), NULL);
        }
    });
    

    上面的例子来自Rob Holland's blog post "BDD on iPhone: iCuke"

    为什么我要做这样的事情?因为,尽管我喜欢Ruby,但我更喜欢在Objective-C中开发iOS应用程序,并使用与我正在测试的应用程序相同的语言编写测试。此外,这将允许我做低级别的事情,例如删除地址簿或使用Core Data编辑其他数据。

  2. 我可以使用大写字母“F”命名features目录Features吗?

3 个答案:

答案 0 :(得分:1)

我同意;在Objective-C中测试Objective-C应用程序。就个人而言,我使用Cedar来做这件事,并且会在Objective-C(没有cuke)中做到这一点,但我意识到这可能不是一个非常有用的答案。不要劫持你的线程,但是你发现Frank比Cedar更容易设置吗?

答案 1 :(得分:1)

试图回答你的第二个问题:

默认情况下,我认为Cucumber会查找“功能”目录。我不知道它是否区分大小写,但事实上你的提问意味着它可能是。您可以在运行Cucumber时指定目录。

例如。我的Rakefile中的黄瓜目标具有非标准位置

Cucumber::Rake::Task.new do |t|
  t.cucumber_opts = ["--format pretty", "FunctionalTests/Frank"]
end

答案 2 :(得分:1)

我在Frank邮件列表here

上回复了Matt的问题