あなたが尋ねている主なシナリオは、統合テストです。
テストは UI レイヤーからアプリを駆動するため、もちろんアプリ内のすべてのコードを呼び出し、すべてのバックエンド システムにアクセスします。しかし、アプリとそれをサポートする一連のバックエンド サービスがすべて正常に動作することを検証したいと考えています。
まず、バックエンド サービスに関するデータをテストに公開する方法が必要です。アプリはおそらく REST API とデータベースを使用しているため、これは既に行っています。テストの場合は、実際のデータを誤って公開する危険がない場所で、ステージングまたは運用前のエンドポイントに対してのみこれを実行することをお勧めします。バックエンド サービスに関する情報を提供する単純な RESTful API を構成し、それをテストから呼び出すことができます。また、API を呼び出すバックドア メソッドを使用して、テストから追加の API 呼び出しを行う必要がないようにすることもできます。新しいユーザーを作成する基本的な例を見てみましょう。
テスト コードは次の擬似コードのようになります。
var uniqueUser = Guid.NewGuid().ToString();
app.EnterText(firstName, "Test 1");
app.EnterText(lastName, uniqueUser);
app.Tap(createUserButton);
app.WaitForNoElement(e => e.Id("progress"));
app.WaitForElement(e => e.Text("User successfully created"));
// At this point, call your API using RestSharp or whatever makes sense for you
string endpoint = "https://my.server.net/user/getByLastName/" + uniqueUser;
var client = new RestClient(endpoint);
var result = ExecuteRequestHereAndItShouldReturnUserJSON();
Assert.IsTrue(result != null && result.FirstName == "Test 1");
そのタイプのこと。
ティアダウンでは、テスト クラウド内の何千ものデバイスによって作成されたテスト ユーザーでデータベースが詰まるのを避けるために、ID でテスト ユーザーを削除するメソッドを呼び出す必要があります。現在の設定に応じて、バックドアまたは REST のいずれか安全な方を介してこれを行うことができます。
コード自体のテストに関しては、別の単体テスト プロジェクトを作成し、NUnit を使用するだけです。他の回答にリストされているテストに関する多くの優れたリソースがあり、優れた単体テストの作成方法、モッキングの使用時期/方法などを理解するのに役立ちます。