2

iOS、xcode、KIF フレームワーク、Objective C は初めてです。私の最初の課題は、KIF を使用してテスト コードを作成することです。KIF に条件文があれば、かなり簡単に思えます。

基本的に次のようなもの:

if ([tester existsViewWithAccessibilityLabel:@"Login"]) {
    [self login];
}
// continue with test in a known state

一度に 1 つのテストを実行すると、KIF はテスト後にアプリを終了します。すべてのテストを一度に実行すると、テストの間に終了しません。テスターは、アプリケーションの状態に非常に注意する必要があります (非常に時間がかかり、楽しくありません)。

4

3 に答える 3

1

通常、テスト フレームワークは、if 条件がネイティブ形式で既に存在するため、実装しません。
テスト フレームワークのソース コードを調べて、"If 状態チェック" がどのように行われるかを確認できます。これにより、実行したいほとんどのことを実行する方法を学ぶことができます (機能テスト中に実行することが常に良い考えであるとは限りません)。こちらも参照してください: KIF を使用して画面にビューが存在するかどうかを確認できますか?

さらに、次のワークフローに従うように、テストは本質的に断定的である必要があります。

 given:
    the user has X state setup  
    (here you write code to assertively setup the state)

    It is OK and preferred to isolate your tests and setup
    the "given" state (e.g. set login name in the model directly without going
    through the UI) as long as you have covered that behavior in another test. 

    When:
    The user tries to do X
    (here you tap something etc..)

    Then:<br>
    The system should respond with Z
    (here you verify the system did what you need it) 
于 2014-05-22T14:54:14.050 に答える
0

すべてのテストの最初のステップは、アプリを既知の状態にリセットすることです。これが、繰り返し可能なテストを保証する唯一の方法だからです。テスト自体に条件付きコードを入れ始めると、結果に予測不能性が生じます。

于 2015-04-03T18:42:28.590 に答える
-1

tryFindingViewWithAccessibilityLabel:error:見つかった場合は true を返し、そうでない場合は false を返すメソッドをいつでも試すことができます。

if ([tester tryFindingViewWithAccessibilityLabel(@"login") error: nil]){
    //Test things
}
于 2015-06-09T19:21:31.613 に答える