如何在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编辑其他数据。
我可以使用大写字母“F”命名features
目录Features
吗?
答案 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的问题