ユニットテスト一、Junit

2696 ワード

前言


Android Studioは、テストのシンプル化を目的としています.数回クリックするだけで、ローカルJVMで実行されるJUnitテストを確立したり、デバイスで実行される機器テストを確立したりすることができます.

ローカルユニットテスト


適用シーン:これらのテストは、コンピュータのローカルJava仮想マシン(JVM)で実行されます.テストにAndroidフレームワーク依存項目がない場合や、Androidフレームワーク依存項目をシミュレートできる場合は、これらのテストを使用して実行時間を最小限に抑えることができます.
アプリケーションモジュールのbuild.gradleファイルでテストライブラリ依存項目を指定します.
dependencies {
    // Required for local unit tests (JUnit 4 framework)
    testCompile 'junit:junit:4.12'
}

手動で作成

  • 左側のProjectウィンドウで、ドロップダウンメニューをクリックし、Projectビューを選択します.
  • 対応するモジュールフォルダとネストされたsrcフォルダを展開します.ローカルユニットテストを追加するには、testフォルダとネストされたjavaフォルダを展開します.機器テストを追加するには、android Testフォルダとネストされたjavaフォルダを展開します.
  • Javaパッケージディレクトリを右クリックし、New>Java Classを選択します.
  • ファイルに名前を付けてOKをクリックします.

  • AS自動作成

  • テストするコードを含むJavaファイルを開きます.
  • テストしたいクラスまたはメソッドをクリックし、Ctrl+Shift+T(
  • が表示されるメニューで、Create New Testをクリックします.
  • Create Testダイアログボックスで、フィールドを編集し、生成するメソッドを選択してOKをクリックします.
  • Choose Destination Directoryダイアログボックスで、作成するテストタイプに対応するソースセットをクリックします.android Testは機器テストに対応し、testはローカルユニットテストに対応します.

  • 図:[画像のアップロードに失敗しました...(image-49 c 0 e 7-1516945046776)]

    テストコードの作成


    簡単に書きます.
    public class UtilsTest {
    
        @Before
        public void setUp() throws Exception {
            MockitoAnnotations.initMocks(this);
            System.out.println("setUp");
    
        }
    
        @Test
        public void test1() throws Exception {
            Assert.assertEquals(Utils.test1(),"is test1");
        }
    
        @Test
        public void test2() throws Exception {
            Assert.assertEquals(Utils.test2("1","2"),"21");
        }
    }
    

    テストの実行


    テストを実行するには、次の手順に従います.
  • ツールバーのSync Projectをクリックして、プロジェクトがGradleと同期していることを確認します.
  • は以下のいずれかの方法でテストを実行する:1).Projectウィンドウで、テストを右クリックし、2)をクリックします.を使用して、クラス内のすべてのメソッドをテストします.すべてのテストを実行するには、テストディレクトリを右クリックし、Run tests
  • をクリックします.

    デフォルトでは、テスト実行時にAndroid Studioのデフォルトの実行構成を使用します.機器ランナや配置オプションなどのいくつかの運転設定を変更する場合は、Run/Debug Configurationsダイアログボックスで運転構成を編集できます(Run>Edit Configurationsをクリックします).

    テストコードの詳細の作成


    Assert


    [局外画像アップロード中...(image-bcceca-1516945046776)]

    JUnitの注釈と意味


    [局外画像アップロード中...(image-cd 8 e 55-116945046776)]

    タイムアウト


    Junitは指定したタイムアウトパラメータを提供します.1つのテストケースで実行されるミリ秒数が指定したパラメータ値を超えた場合、Junitは自動的に失敗としてマークされます.
    @Test(timeout=1000)
    public void test() {
        ...
    }
    

    例外の取得

    @Test(expected = ArithmeticException.class)
    public void testException() {
        int b = 1/0;
        System.out.println(b);
    }