6

ユーザーの入力をテストする方法を理解しようとしています (模擬テストではなく、実際のユーザーの入力のテストであることに注意してください)

現在、私のプログラムでわかるように、テストケースの値をハードコードしており、すべてのテストに合格していますが、ユーザーの入力を取得してテストするにはどうすればよいですか。

コンストラクターで System. を呼び出して、テスト クラスで MyClass1 のインスタンスを作成するときにそれを渡す方法はありますか?

可能であれば、理解を深めるためにサンプルコードを教えてください。

そのようなインターフェイスがある場合

public interface IMyClass{
   public int getvalue1();
   public int getvalue2();
   public int getvalue3();
}

そして、そのようなインターフェースの実装

public class MyClass1 implements MyClass{

private int _value1 = 0;
private int _value2 = 0;
private int _value3 = 0;



public MyClass1(int number1, int number2, int number3)
{

   _value1 = number1;
    _value2 = number2;
    _value3 = number3;
}

public void setLength1(int value1)
{
    _value1 = value1;
}

public void setLength2(int length2)
{
    _value2 = value2;
}

public void setLength3(int length3)
{
    _value3 = value3;
}

public int getValue1()
{
    return _value1;
}

public int getValue2()
{
    return _value2;
}

public int getValue3()
{
    return _value3;
}
}

そして最後にテストクラスそのもの:

public class ClasTest extends TestCase {

public void testNumbers()
{
   MyClass1 numbers= new MyClass1(1,2,3);
   assertThat(numbers.getValue1(),is(not(numbers.getValue2())));

}
}

ありがとう、助けてくれてありがとう。

4

3 に答える 3

0

user Scanner class

public void testNumbers()
{

    Scanner scan = new Scanner(System.in);
    System.out.println("value1");
    int value1 = scan.nextInt();

    System.out.println("value2");
    int  value2 = scan.nextInt();

    System.out.println("value3");
    int value3 = scan.nextInt();

   MyClass1 numbers= new MyClass1(value1, value2, value3);
   assertThat(numbers.getValue1(),is(not(numbers.getValue2())));

}
于 2013-04-17T17:49:25.603 に答える