今日の発見
Expecta
AFNetworkingのtestcaseをチラ見してて気がついたもの。
SenTestCaseで使ってるmatcherがさくっと書けてしまう優れもの。
expect(@"foo").to.equal(@"foo"); // `to` is a syntatic sugar and can be safely omitted. expect(foo).notTo.equal(1); expect([bar isBar]).to.equal(YES); expect(baz).to.equal(3.14159);
非同期テストもシンプルに書けるぽい。
expect(対象).will.to.equal(期待するもの);
とか。
実際の例はAFNetworkingのtestcaseから。
# https://github.com/AFNetworking/AFNetworking/blob/master/Tests/AFHTTPClientTests.m - (void)testPostWithParameters { __block id blockResponseObject = nil; [self.client postPath:@"/post" parameters:@{ @"key": @"value" } success:^(AFHTTPRequestOperation *operation, id responseObject) { blockResponseObject = responseObject; } failure:nil]; expect([self.client.operationQueue operationCount]).will.equal(0); expect(blockResponseObject).notTo.beNil(); expect(blockResponseObject).to.beKindOf([NSData class]); NSError *error = nil; NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:blockResponseObject options:0 error:&error]; expect(responseDictionary[@"form"]).to.equal(@{ @"key": @"value" }); }
httpbin
通信ライブラリとかのテストケースで使えそうなもの。
いろいろとテストで使えそうな予感。
ローカルで動いてないと嫌な人はここからインストールするとかで使えそうな雰囲気。