我是在没有rails/rspec背景的情况下进来的,并且尝试了在iOS上进行单元测试的“specta”框架。我不明白的一件事是什么时候使用斯皮塔的“共享体验”。
这仅仅是在您的所有测试套件之间共享的测试,您可以在每个测试之前运行这些测试,这些测试是一组类似测试用例的一部分吗?
发布于 2014-02-03 21:31:13
它用于指示跨多个类/组件的常见行为。例如,您可能有两个控制器,它们都是UITableView委托。您可以创建一个共享示例,测试给定的UIViewController是否符合UITableViewDelegate协议,或者它是否响应于给定的方法。然后,您可以在两个UIViewControllers中使用这种共享行为。
sharedExamplesFor(@"Table controller", ^(NSDictionary *data) {
describe(@"Controller", ^{
it(@"is UITableViewDelegate", ^{
UIViewController *controller = data[@"controller"];
expect(controller).to.conformTo(@protocol(UITableViewDelegate));
});
});
});
describe(@"View controller 1", ^{
MyViewControllerOne *controllerOne = [[MyViewControllerOne alloc] init];
itBehavesLike(@"Table controller", @{@"controller" : controllerOne});
});
describe(@"View controller 2", ^{
MyViewControllerTwo *controllerTwo = [[MyViewControllerTwo alloc] init];
itBehavesLike(@"Table controller", @{@"controller" : controllerTwo});
});这是一个非常琐碎的例子,很可能不是你真正要测试的东西,但希望能展示这个想法。
https://stackoverflow.com/questions/21500343
复制相似问题