1

名前と値を返すリストがあります。返されるリストがアルファベット順であるかどうかを確認して、Junit テストを作成することに興味があります。これまでのところ私はこれを行ってきましたが、「MINTS ......」を考慮していると信じているため、結果は常に= TRUEになります。したがって、私の目標は、リストから MINTS ( Name ) を削除し、リスト ( VALUE ) の順序を確認することです。

テーブルからのリスト

ここに画像の説明を入力

ユニットコード

public void test() throws Exception
    {
        DataObj dao = new DataObj();

        HashMap<String, Object> params = new HashMap<String, Object>();
        params.put( "code", 100 );

        List<?> values = dao.getDataObj( params, conn );

        String previous = "";
        boolean result = false;

        for ( final Object vCurrent : values )
        {

            String current = vCurrent.toString();
            if ( current.compareTo( previous ) < 0 )
            {
                result = false;
                previous = current;

            }
            result = true;
        }


    }

値を出力すると、「mints Dave mints Jackie mints Derek.....」のような結果が得られます。

4

2 に答える 2

3

result = trueループの各反復の最後に常に設定しています。

あなたがすることができます:

    String previous = "";
    boolean result = true;

    for ( final Object vCurrent : values )
    {

        String current = vCurrent.getValue();
        if ( current.compareTo( previous ) < 0 )
        {
            result = false;
            break;
        }
    }
于 2013-02-08T23:45:06.213 に答える
1

これが JUnit テストであると思われる場合は、JUnit の「assertXxxx」メソッドを使用して低レベルのテストを実行する必要があります。たとえば、このようなもの

    import static org.junit.Assert.*;

    ....

    @Test
    public void testOrdered() {
        DataObj dao = new DataObj();

        HashMap<String, Object> params = new HashMap<String, Object>();
        params.put( "code", 100 );

        List<?> values = dao.getDataObj( params, conn );

        String previous = "";
        for (final Object vCurrent : values) {
            String current = vCurrent.toString();
            assertTrue("list not ordered correctly",  /* this arg is optional */
                       current.compareTo(previous) < 0);
            previous = current;
        }
    }

これにより、「結果」を生成する必要が完全になくなります。

于 2013-02-09T01:34:45.593 に答える