2

JUnitsテストを特定の順序で実行し、テストの1つが失敗した場合にすべてのテストを停止する方法を理解しようとしています。以下に、いくつかの簡単なアクションバーアイテムテストを含めました。基本的に確認したいのは、コマンドラインからビルド/テストを実行するときに、これらのテストの1つが失敗した場合にテストを停止することだけです。推奨事項はありますか?

public void testPreconditions() {
    assertNotNull(instrumentation);
    assertNotNull(mWeb);
    assertNotNull(mActivity);
}

protected void setUp() throws Exception {
    super.setUp();

    instrumentation = getInstrumentation();
    mActivity = getActivity();
    setActivityInitialTouchMode(false);
    mWeb = (WebView) mActivity
            .findViewById(com.jaisonbrooks.webview.R.id.webview_main);
    mMockWebViewClient = new MockWebViewClient();
    mWeb.setWebViewClient(mMockWebViewClient);
    mSettings = mWeb.getSettings();
}

public void testThatButtonReloadWorks() {
    final View view = mActivity
            .findViewById(com.jaisonbrooks.webview.R.id.menu_refresh);
    mActivity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            view.requestFocus();
            view.callOnClick();
        }
    });
}

public void testThatButtonForwardWorks() {
    final View view = mActivity
            .findViewById(com.jaisonbrooks.webview.R.id.menu_forward);
    mActivity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            view.requestFocus();
            view.callOnClick();
        }
    });
}

public void testThatButtonBackWorks() {
    final View view = mActivity
            .findViewById(com.jaisonbrooks.webview.R.id.menu_back);
    mActivity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            view.requestFocus();
            view.callOnClick();
        }
    });
}
4

2 に答える 2

1

Android アプリの Junit テストは行っていませんが、Web アプリケーションの経験に基づいて、この回答を提案しています。

そのような状況に直面したときはいつでも、戻り値の型を持つ別のメソッドでそれらを呼び出します

例:

public void testCheckFunctions()
{
boolean returnval=false;

returnval=test1();
if(returnval)
{
returnval=test2();
}
if(returnval)
{
returnval=test3();
}
}

上記の条件のいずれかが失敗した場合は、テストを終了できます。

于 2013-03-18T15:56:53.430 に答える
1

JUnit を使用して統合テストを行っている場合は、メソッド名の前に _1、_2 などを付けることができます。

public void _1_testThatButton()...
public void _2_testSomethingSecond()...

例外をスローする代わりに System.exit() を呼び出すこともできると思いますが、テストに時間がかかりすぎる場合は、将来テストを追加するのに悪い兆候になる可能性があります (テストを追加すると、テストの実行を思いとどまらせる可能性があります)。

Ant を使用している場合は、これを試すことができます:最初のテスト失敗後に junit テストを停止する方法

于 2013-03-18T15:52:38.703 に答える