私はJUnit4を使用していて、同一の複数のクラスに使用できるテストを設定しようとしています(すべてが同じである理由は重要ではありません)が、複数のJavaファイルをテストに渡し、そこからメソッドに.classとメソッドの名前の両方を持つオブジェクトを作成します。.classの名前とメソッドeg. list.add(new Object[]{testClass.class, testClass.class.methodName()});
の名前をそのまま(上記の例のように)正確に入力すると、問題なく機能します。いくつかの異なるクラスに対してこれを実行します。ループでそれらを渡す必要があります。次のコードを使用していますlist.add(new Object[]{currentFile.getClass(), currentFile.getClass().getMethod(addTwoNumbers,int, int)}
。currentFile
現在のファイルは処理されており、.getMethod(addTwoNumbers,int, int)
addTwoNumbersは2つのintを受け取るメソッドの名前eg. addTwoNumbers(int one, int two)
ですが、次のエラーが発生します。
'.class' expected
'.class' expected
unexpected type
required: value
found: class
unexpected type
required: value
found: class
これが私の完全なコードです
CompilerForm compilerForm = new CompilerForm();
RetrieveFiles retrieveFiles = new RetrieveFiles();
@RunWith(Parameterized.class)
public class BehaviorTest {
@Parameters
public Collection<Object[]> classesAndMethods() throws NoSuchMethodException {
List<Object[]> list = new ArrayList<>();
List<File> files = new ArrayList<>();
final File folder = new File(compilerForm.getPathOfFileFromNode());
files = retrieveFiles.listFilesForFolder(folder);
for(File currentFile: files){
list.add(new Object[]{currentFile.getClass(), currentFile.getClass().getMethod(addTwoNumbers,int, int)});
}
return list;
}
private Class clazz;
private Method method;
public BehaviorTest(Class clazz, Method method) {
this.clazz = clazz;
this.method = method;
}
誰かが私がこの行で間違っていることを見ていますlist.add(new Object[]{currentFile.getClass(), currentFile.getClass().getMethod(addTwoNumbers,int, int)});
}
か?