2

Junit を使い始めたのですが、非常に基本的な質問があります。

方法を確認したいrateTrans。これはまだ実装していませんが、実装前にテストを書きたいと思っています。このメソッドが取得する引数はわかっています。

だから私は次のクラスを書きました:

import org.junit.Assert.*;
import junit.framework.*;

public class testing extends TestCase {

    public void testAdd(){
    assertTrue(rateTrans("1223",1,2,3,4,"blabla"));
    assertTrue(rateTrans("1223",1,2,3,4,"")) ;
    assertFalse(rateTrans("1223",7,2,3,4,"blabla"));
    }
}

次の問題が発生しますThe method rateTrans(String, int, int, int, int, String) is undefined for the type testing

私は何を間違っていますか?

4

3 に答える 3

6

TDD環境で、またはIDEがインターフェイスからクラスを生成するときに、一時的な実装を行うための私の好ましい方法は、UnsupportedOperationExceptionなどの例外をスローすることです。

boolean rateTrans(String firstStr, int firstInt, int secondInt, int thirdInt, int fourthInt, String secondStr) {
    // TODO: implement me!
    throw new UnsupportedOperationException("Not yet implemented");
}

、、、、などnullの潜在false的な有効な値を返すのではなく、例外をスローする理由は、実際には機能する実装がないことが非常に明確になるためです。そうしないと、一時的な解決策が忘れられ、正しく実装されていると想定して、人々がそれを使い始める可能性があります。0""Collections.empyList()

編集:パラメータリストを追加しました。

于 2012-04-22T11:21:22.303 に答える
2

空のボディおよび/またはnull戻り値として実装するだけです(まあ、この場合falseは良い選択かもしれません):

protected boolean rateTrans(String, int, int, int, int, String) {
    // TODO: implement me!
    return false;
}

おめでとう、あなたは TDD をやっています! すべてのテストを実装したら、メソッド自体を実装できます。それまでは、ブール値の戻り値のために一部のテストが緑色になる可能性がありますが、他のテストは赤色になります。

于 2012-04-22T10:33:22.050 に答える
1

UnsupportedOperationException実装を提供していないメソッドから をスローします。これは、任意の値を返すよりもはるかに優れています。つまり、偽か真か

于 2012-04-22T11:23:08.637 に答える