Kiwiが上手に体験
2597 ワード
Kiwiは、私がモジュール化して構築したとき、
Kiwi
pod lib create xxxPods
を実行したときに問題があったと聞きました.Which testing frameworks will you use? [ Specta / Kiwi / None ]
Kiwi
KiwiはBDDを思想とする可読性の良いテストフレームワークであり,その下層はXCTestフレームワークによって実現され,XCodeとの結合度が高い.
BDD
BDDは、テスト文を自然言語のような記述に変換することで、開発者がより大衆言語に合った習慣を使ってテストを書くことができ、プロジェクトの引き継ぎ/交付、またはその後、自分で修正した場合でも、スムーズに書くことができることを提唱しています.開発者としての私たちの日常的な仕事がコードを書くことだとすれば、BDDは実は物語を話しています.1つの典型的なBDDのテスト用例は完全な3段式のコンテキストを包んで、テストの大部分はGivenに訳すことができます..When..Thenのフォーマットは、読みやすいです.
Demo describe(@"My initial tests", ^{
context(@"will pass", ^{
it(@"can do maths", ^{
[[@1 should] beLessThan:@23];
});
it(@"can read", ^{
[[@"team" shouldNot] containString:@"I"];
});
});
});
4つの一般的なテストシーン
Sequence Logic
この場合、equal構文、またはshould not+equal構文で直接完了し、簡単で明快です.it(@"can do maths", ^{
[[vc.name should] equal:@"nimo"];
});
Notification
この方式は,出発notification方式を用いて,本当にNotification方式が実行されたかどうかをテストする.it(@"can hook notification", ^{
[[@"Notify" should] bePosted];
NSNotification *myNotification = [NSNotification notificationWithName:@"Notify"
object:nil];
[[NSNotificationCenter defaultCenter] postNotification:myNotification];
});
BlockシーンとThreadシーン
この2つのシーンのテスト方法は、実行後に演算が実行されるかどうかを確認し、expectFutureValueで表示します.it(@"can hook thread", ^{
[vc changeNameByThread];
[[expectFutureValue(vc.name) shouldEventually] equal:@"kiki"];
});
it(@"can hook blocks",^{
__weak NimoViewController *wVC = vc;
[vc changeNameWithBlock:^(NSString *name) {
wVC.name = name;
}];
[[expectFutureValue(vc.name) shouldEventually] equal:@"nimo for Block Function"];
});
メリット
まず、CocoaPodsと緊密に結合し、公式にPodsを作成した後、Kiwiを生成するテストプロジェクトを直接サポートします.次に、そのBDDの特性のため、文法の可読性が強い.最後に、XCTestに基づいて開発されたので、XCodeのサポートはよく、直接XCodeでテスト回帰やデバッグを行えばよい.
Jenkinsとの結合
TodoはXCodeレベルのデバッグと実行をサポートしているので、Jenkinsができなくても構わない.
もっと詳しいKiwi紹介:Kiwiについて詳しく紹介したいと思っていたのですが、ニャンコにはすでに専門書があることに気づき、車輪を作らないことにしました.TDDのiOS開発の初歩とKiwi使用入門Kiwi使用進級Mock、Stub、パラメータキャプチャと非同期テスト
BDDは、テスト文を自然言語のような記述に変換することで、開発者がより大衆言語に合った習慣を使ってテストを書くことができ、プロジェクトの引き継ぎ/交付、またはその後、自分で修正した場合でも、スムーズに書くことができることを提唱しています.開発者としての私たちの日常的な仕事がコードを書くことだとすれば、BDDは実は物語を話しています.1つの典型的なBDDのテスト用例は完全な3段式のコンテキストを包んで、テストの大部分はGivenに訳すことができます..When..Thenのフォーマットは、読みやすいです.
Demo describe(@"My initial tests", ^{
context(@"will pass", ^{
it(@"can do maths", ^{
[[@1 should] beLessThan:@23];
});
it(@"can read", ^{
[[@"team" shouldNot] containString:@"I"];
});
});
});
4つの一般的なテストシーン
Sequence Logic
この場合、equal構文、またはshould not+equal構文で直接完了し、簡単で明快です.it(@"can do maths", ^{
[[vc.name should] equal:@"nimo"];
});
Notification
この方式は,出発notification方式を用いて,本当にNotification方式が実行されたかどうかをテストする.it(@"can hook notification", ^{
[[@"Notify" should] bePosted];
NSNotification *myNotification = [NSNotification notificationWithName:@"Notify"
object:nil];
[[NSNotificationCenter defaultCenter] postNotification:myNotification];
});
BlockシーンとThreadシーン
この2つのシーンのテスト方法は、実行後に演算が実行されるかどうかを確認し、expectFutureValueで表示します.it(@"can hook thread", ^{
[vc changeNameByThread];
[[expectFutureValue(vc.name) shouldEventually] equal:@"kiki"];
});
it(@"can hook blocks",^{
__weak NimoViewController *wVC = vc;
[vc changeNameWithBlock:^(NSString *name) {
wVC.name = name;
}];
[[expectFutureValue(vc.name) shouldEventually] equal:@"nimo for Block Function"];
});
メリット
まず、CocoaPodsと緊密に結合し、公式にPodsを作成した後、Kiwiを生成するテストプロジェクトを直接サポートします.次に、そのBDDの特性のため、文法の可読性が強い.最後に、XCTestに基づいて開発されたので、XCodeのサポートはよく、直接XCodeでテスト回帰やデバッグを行えばよい.
Jenkinsとの結合
TodoはXCodeレベルのデバッグと実行をサポートしているので、Jenkinsができなくても構わない.
もっと詳しいKiwi紹介:Kiwiについて詳しく紹介したいと思っていたのですが、ニャンコにはすでに専門書があることに気づき、車輪を作らないことにしました.TDDのiOS開発の初歩とKiwi使用入門Kiwi使用進級Mock、Stub、パラメータキャプチャと非同期テスト
describe(@"My initial tests", ^{
context(@"will pass", ^{
it(@"can do maths", ^{
[[@1 should] beLessThan:@23];
});
it(@"can read", ^{
[[@"team" shouldNot] containString:@"I"];
});
});
});
Sequence Logic
この場合、equal構文、またはshould not+equal構文で直接完了し、簡単で明快です.
it(@"can do maths", ^{
[[vc.name should] equal:@"nimo"];
});
Notification
この方式は,出発notification方式を用いて,本当にNotification方式が実行されたかどうかをテストする.
it(@"can hook notification", ^{
[[@"Notify" should] bePosted];
NSNotification *myNotification = [NSNotification notificationWithName:@"Notify"
object:nil];
[[NSNotificationCenter defaultCenter] postNotification:myNotification];
});
BlockシーンとThreadシーン
この2つのシーンのテスト方法は、実行後に演算が実行されるかどうかを確認し、expectFutureValueで表示します.
it(@"can hook thread", ^{
[vc changeNameByThread];
[[expectFutureValue(vc.name) shouldEventually] equal:@"kiki"];
});
it(@"can hook blocks",^{
__weak NimoViewController *wVC = vc;
[vc changeNameWithBlock:^(NSString *name) {
wVC.name = name;
}];
[[expectFutureValue(vc.name) shouldEventually] equal:@"nimo for Block Function"];
});
メリット
まず、CocoaPodsと緊密に結合し、公式にPodsを作成した後、Kiwiを生成するテストプロジェクトを直接サポートします.次に、そのBDDの特性のため、文法の可読性が強い.最後に、XCTestに基づいて開発されたので、XCodeのサポートはよく、直接XCodeでテスト回帰やデバッグを行えばよい.
Jenkinsとの結合
TodoはXCodeレベルのデバッグと実行をサポートしているので、Jenkinsができなくても構わない.
もっと詳しいKiwi紹介:Kiwiについて詳しく紹介したいと思っていたのですが、ニャンコにはすでに専門書があることに気づき、車輪を作らないことにしました.TDDのiOS開発の初歩とKiwi使用入門Kiwi使用進級Mock、Stub、パラメータキャプチャと非同期テスト
TodoはXCodeレベルのデバッグと実行をサポートしているので、Jenkinsができなくても構わない.
もっと詳しいKiwi紹介:Kiwiについて詳しく紹介したいと思っていたのですが、ニャンコにはすでに専門書があることに気づき、車輪を作らないことにしました.TDDのiOS開発の初歩とKiwi使用入門Kiwi使用進級Mock、Stub、パラメータキャプチャと非同期テスト