0

Java プロジェクト

   public ArrayShoppingList()
   {

    // initialise instance variables
     super();
    }

   //public void addItem(int itemPosition,String item){
    // super.add(itemPosition,item);
    //  }
   public void addItem(){
      System.out.println("Please enter the item you wish to enter into the shopping 
       List");
       Scanner reader1 = new Scanner(System.in);
       String item = reader1.next();
       super.add(super.size(),item);
      }

    public void getPosition(){
     System.out.println("Please enter the item name that you wish to find 
     theposition         of");
    Scanner reader1 = new Scanner(System.in);
    String item = reader1.next();
    super.indexOf(item);
    }



 public void removeItem(){
    System.out.println("Please enter the item number that you wish to remove");
    Scanner reader1 = new Scanner(System.in);
    String item = reader1.next();
    int itemIndex = super.indexOf(item);
    super.remove(itemIndex);
       }

ユーザー入力を求めるテストクラスでそのようなメソッドをテストする方法を知りたいです。メソッドは ArrayLinearList から他のメソッドを呼び出し、ユーザーが入力したデータを渡します。ユーザーが入力する内容をシミュレートするコードを作成したいと考えています。

4

3 に答える 3

1

System.setIn(InputSteam) を使用できます

ここで、独自の入力ストリームを指定して、必要な入力を追加できます。

于 2013-10-30T13:10:04.860 に答える
1

MockitoPowermockなどのフレームワークを使用して、スキャナーをモックできます。次に、クラスが入力用に Scanner を呼び出す場合、クラスによってユーザー入力として処理される文字列をモックに返すことができます。クラスは、「実際の」スキャナーとモック実装の違いを認識しません。

以下も参照してください。

于 2013-10-30T13:09:24.003 に答える
0

System.setInUnitesting に使用しますScanner。例えば:

 String input = "Your input data";
 System.setIn(new ByteArrayInputStream(input.getBytes()));

Scanner scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());

出力:

Your input data
于 2013-10-30T13:09:41.597 に答える