前提・実現したいこと
JUnitの作成しています。
その中で、privateメソッドのテストをしたいため、PowerMockitoを使用してアクセス可能にし、
テストを行いたいです。
ただ、テスト対象メソッドの中に配列を渡しているメソッドがあり、どのように指定すればいいのかわからず
いろいろ試したのですが、正しい型を指定できていないのか
java.lang.NoSuchMethodException
が出てしまうため、指定するべきクラスをご教授いただければと思いました。
よろしくお願いいたします。
発生している問題・エラーメッセージ
java.lang.NoSuchMethodException
該当のソースコード
テスト対象クラス
Java
1private List<String> test(List<String> strList, String[] strArr) { 2 List<String> res = new ArrayList<>(); 3 4 for (int i = 0; i < strList.size(); i++) { 5 res.add(strList.get(i) + "_" + strArr[0]); 6 } 7 8 return res; 9}
テストクラス
Java
1@InjectMocks 2TestClass _target; 3 4@Before 5public void setUp() throws Exception { 6 _target = new TestClass(); 7} 8 9@Test 10private void test_junit() throws Exception { 11 Method method = DbViewerGetTableDataLogic.class.getDeclaredMethod( 12 "test", List.class, /* ここに書くべきクラスが分からない */); 13 method.setAccessible(true); 14 15 List<String> strList = Arrays.asList("list1", "list2"); 16 String[] arr = {"arr1", "arr2"}; 17 18 List<String> expect = Arrays.asList("list1_arr1", "list2_arr2"); 19 20 TestClass spy = PowerMockito.spy(_target); 21 22 List<String> actual = (List<String>) method.invoke(spy, strList, strArr); 23 assertThat(actual, is(expect)); 24}
コメントアウト部
/* ここに書くべきクラスが分からない */
に書くべきクラスを知りたいです。
試したこと
String.class
Array.class
を試しましたが、どれもNoSuchMethodExceptionになってしまいました。
初歩的な質問で申し訳ありませんが、ご教授いただけますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/16 00:11