私はXamarin.Formsアプリケーションを作成しています.UITestを使用して、自分のViewの正しい動作をテストしたいと思います。ビューは、ボタンのクリックなどのようなユーザーの入力に反応するだけではありません。代わりに、1つの要素を隠し、この時点で別の要素を表示するようなビューの変更につながるバックグラウンド操作があります。もう1つの例は、バックグラウンド操作によって生成される要素をListViewに埋め込むことです。これらの変更は、そのプロパティがViewにバインドされているViewModel上で行われます。 ここでは、バックグラウンド操作をシミュレートして、ビューが正しく動作することをテストします。しかし、私はTestModelを操作することはできませんが、UITestプロジェクトでは、TestクラスのXamarin.Formsを参照できないためです。 このようにアプリケーションをテストすることは意図されていないようです。アプリケーション全体はUITestのブラックボックスであり、マウスとキーボードの入力だけで対話できます。 私のアプリの内部、たとえば対応するViewModelにどうやってアクセスできますか? 私は既にこの問題を検索しましたが、何も見つかりませんでした。たぶん私は間違った方向に向かっています。 ご協力いただければ幸いです。Xamarin.UITestを使用してバックグラウンドアクティビティを偽装する方法
0
A
答えて
0
バックドアを使用してプラットフォームプロジェクトのメソッドにアクセスすることができます。そこから、アプリケーションプロジェクトがFormsコアプロジェクトを参照するため、フォームコードにアクセスできるはずです。参照:MainActivityで
:https://developer.xamarin.com/guides/testcloud/uitest/working-with/backdoors/
は、Androidプロジェクトでのバックドアメソッドを作成します
[Export("MyBackdoorMethod")]
// Can optionally take a parameter of string, int, or bool.
// Can optionally return string or Java.Lang.String.
public void MyBackdoorMethod()
{
// In through the backdoor - do some work.
}
をテストからAndroidのバックドアのメソッドを呼び出すには:
app.Invoke("MyBackdoorMethod");
のiOSでバックドアメソッドを作成します。プロジェクト:
In AppDelegate:
[Export("myBackdoorMethod:")] // notice the colon at the end of the method name
// Must take an NSString and return an NSString.
public NSString MyBackdoorMethod(NSString value)
{
// In through the backdoor - do some work.
}
テストからiOSのバックドアメソッドを呼び出すために:リンクで
app.Invoke("myBackdoorMethod:", "the value");
詳細が、これは1が軌道に乗るために十分です。
関連する問題
- 1. Silverlightクライアントオブジェクトモデルを使用して偽装する方法は?
- 2. aspnet_personalization Windows認証を使用して偽装する方法
- 3. 偽装を使用してasp.netでexeを開く方法
- 4. htaccessを使ってファイルタイプを偽装する方法
- 5. ffmpeg用に私のビルドスクリプトを使ってmacportsを偽装する方法は?
- 6. AirPrintプリンタを偽装する方法
- 7. ロケーションを偽装する方法
- 8. O365ルームアカウントを偽装する方法
- 9. NetworkCountryIsoを偽装する方法は?
- 10. Active Directoryを偽装する方法は?
- 11. フォーム認証を使用する偽装
- 12. NTLMを使用してユーザーを偽装する
- 13. PHPを使用して$ _POSTを偽装する
- 14. Salesforce:APIを使用した偽装
- 15. JWTを使用した偽装
- 16. ドライブAPIを使用してGoogle Apps for Workを使用せずにユーザーを偽装する方法
- 17. 無効にしても偽装を使用するIIS 7.5
- 18. サブディレクトリをルートとして使用する(または偽装)
- 19. htmlを使用して偽のダウンロードリンクを作成する方法
- 20. 偽装を使用してWeb APIを呼び出す
- 21. スレッド偽装のマルチレベル使用
- 22. IdentityServer4 - 偽装の実装方法
- 23. laravel action()ヘルパーメソッドのリクエスト方法を偽装していますか?
- 24. Xamarin.uitestアプリケーションインスタンスを閉じる方法
- 25. iOS:ドライブトラッキングアプリのバックグラウンドアクティビティを減らす方法
- 26. 偽装を使用してC#.NETからPDFファイルを開く
- 27. dbを使用しないアクティブレコードモデルを偽装する
- 28. Moqを使用してリポジトリからIQueryable <T>を正しく偽装する方法?
- 29. ユニットテスト用のJavaScriptを使用してGoogleマップのオブジェクト構造を偽装する
- 30. Powermock:偽装されたクラスを使用している間に偽装されたオブジェクトが返されない
ありがとうございます。これはちょっと面倒ですが、行く方法があります。そしてそれはまったく同じですか?私のUIコントロールがUIで再び可視化されないICommandを開始する場合。私はバックドアの方法でテストアサートをすることができないと思いますか? –
いいえ、プラットフォームコードにアサートを入れることはできませんが、テストできるバックドアメソッドから何かを返すことができます。 – jgoldberger