2017-03-14 9 views
-1

私は本当にユニットテストの方法で助けが必要です。私はそれについてどうやって行くのか本当に分かりません。このメソッドは、Android搭載アプリケーションの現在地を中心としたナビゲーションボタンを押すと呼び出されます。それをbuttnavと呼ぼう。私はかなり迷ってしまいましたとAndroid内のユニットテストを参照する多くのドキュメントを見つけることができませんでしたユニットGPSの検出方法をテスト

mapFragment = (SupportMapFragment) getChildFragmentManager() 
      .findFragmentById(R.id.map); 

public void GPSDetector() { 
    AlertDialog.Builder build = new AlertDialog.Builder(
      mapFragment.getActivity()); 
    build 
      .setTitle("GPS Detection Services") 
      .setMessage("GPS is disabled in your device. Enable it?") 
      .setCancelable(false) 
      .setPositiveButton("Enable GPS", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
          startActivity(i); 
         } 
        }); 
    build.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.cancel(); 
       } 
      }); 
    AlertDialog alert = build.create(); 
    alert.show(); 
} 

地図の断片は、エンティティは、次のようなフラグメントの内側onActivityCreatedにSupportMapFragmentとしてインスタンス化されていますコア機能私はJunitを使用しようとしています。私はエスプレッソを試しましたが、Androidのコア機能ビューは含まれていません。最初の

+0

ようこそスタックオーバーフロー! [ツアー](http://stackoverflow.com/tour)を見て回り、[ヘルプセンター](http://stackoverflow.com/help)、特に[どのように私に質問しますか良い質問?](http://stackoverflow.com/help/how-to-ask)と[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)。 UnitTestsはユニットの公開観測可能な振る舞い*を単独でテストします*後者を有効にするにはコードをリファクタリングする必要があります。 –

+0

このような方法でコードをどのようにリファクタリングすることができるのかわかりません。どこかに書類があるのか​​、本当に良いウェブサイトがありますか? – Anon

+0

* Steve Freeman/Nat Pryceの* Robert C. Martin *および「Growing Object-Oriented Software、Guided by Tests」の "Clean Code"の読み方を再読することができます* –

答えて

0

は:

メソッド名は小文字であり、好ましくは動詞で始まるJava Naming Conventionsに慣れます。あなた言い訳はダブルテストでAlertDialog.Builderのインスタンスを置き換えるこのメソッドの動作を検証するために


模擬フレームワークMockitoのように使用して作成する必要があります。次に、実際の依存関係をテストダブルに置き換えることができるシームを提供するように、コードをリファクタリングする必要があります。

一部は悪いデザインにsurrendeerとして、それをユーザconcider自分のためにPowerMock(-ito)をsugestが、私かもしれません。

残りのコードを知っている私の提案は、メソッドにパラメータとしてAlertDialog.Builderインスタンスを渡すことです。

関連する問題