2017-11-20 27 views
1

現在、私たちはプログラミングクラスでJUnitテストを学んでいます。私たちの仕事は、配列内のint型の値の合計を計算する方法を記述した:シンプルなJUnitテストが動作しない

public class PIArrays 
{ 
    public int sum(final int[] array) { 
     int sum = 0; 
     for(int i = 0; i < array.length; i++){ 
      sum += array[i]; 
     } 
     return sum; 
    } 

} 

その後、我々はBlueJののツールの助けを借りてテストを書くことになっています。

public void testSum() 
{ 
    PIArrays pIArrays1 = new PIArrays(); 
    assertEquals(3, pIArrays1.sum({1,2})); 
} 

和方法は、しかし、このエラーメッセージのテストの結果、正常に動作します:

"illegal start of expression" 

は私が間違って正確に何をしているのですか?

EDIT:

パブリッククラスPIArraysTestは、それが実際パブリッククラスPIArraysだ間違っています。私は間違った行をコピーしました。

エラーが私のテストクラスで起こる:パブリッククラスPIArraysTestこの行で:

assertEquals(3, pIArrays1.sum({1,2})); 

この部分で:

({1,2}) 

beeingてはint[]として

+0

あなたのクラスには「PIArraysTest」という名前が付けられていて、それを「PIArrays」として参照していますか?それは正しいとは思わない。あなたのテストコードで 'PIArraysTest pIArrays1 = new PIArraysTest();'を試してみてください。また、エラーについて詳しく説明してください。どのクラスをどのクラスですか?唯一の情報権利ではありませんか? – Clemenz

+1

'pIArrays1.sum({1,2})' - > 'pIArrays1.sum(新しいint [] {1,2})' – UnholySheep

+0

質問を編集していただきありがとうございます。これにより、正確に何を求めているのかがより明確になります。次回に他の質問をしながらこれを覚えておいてください! – Clemenz

答えて

2

{1, 2}を強調していません有効なパラメータです。代わりにnew int[]{1, 2}を使用してください。

assertEquals(3, pIArrays1.sum(new int[]{1,2})); 
+0

これはうまくいった!ただ一つの質問。私はこれをBlueJで*右クリック*テストクラスの作成*と*テストメソッドの作成*などで行いました。 BlueJが時々このようなものを混乱させるのは普通ですか? – Yoey

+0

あなたはクラスの命名を意味しますか?はい、BlueJがテストクラスにサフィックス "Test"を追加する可能性があります。私は実際にはBlueJと仕事をしたことがありません。あなたを助けてうれしい " –