Ошибка NoSuchMethod для json.put во время выполнения для теста junit - PullRequest
0 голосов
/ 17 мая 2019

Написал мой тестовый пример Junit как показано ниже.Не получается получить такую ​​ошибку, когда я запускаю свои тестовые случаи.

ResponseObject res = initialized with some data;
ServiceImpl servie;
@Test
public void methidName(){

  ResponseObject mockObject= Mockito.spy(new ResponseObject(data));
  mockObject.setters() // more setters follows
  doReturn(someretunObject).when(mockObject).somethod();
  // calling actual method here now
   service.transfor();

} 

Фактические классы

ResponseOject {
 List<JSONObject> jsonList;
  ......
 }

ServiceImpl{
  public SearchResponse transfor(SearchResponse response) {
    JSONObject obj= new JSONObject(response.getConent());
    JSONArray arr= (JSONArray) obj.get("RootNode");
    ArrayList<JSONObject> list=new ArrayList<>();
    for(int i=0i<arr.size();i++){
    list.add(arr.get(i));
       }
 // doing some sorting here with the list
  Collections.sort(list, comparator);
/**/ setting the sorted collection to response object as below**
    response.setJsonList(list);
  JSONObject obj= new JSONObject();
  obj.put("rootNode", response.getJsonList);
 // getting error in above line during Junit testcase run
  }
}

Постановка задачи

  Getting error at this point in actual method
  obj.put("rootNode", response.getJsonList);

 java.lang.NoSuchMethodError: org.json.JSONObject.put(Llava/lang/String;Ljava/lanf/
    Collection;)Lorg/json/JSONObject

Любойпричина, почему это так.Я что-то упустил?

1 Ответ

0 голосов
/ 21 мая 2019

Вы называете метод, который вы думаете, что вы?Ваш тест вызывает этот метод:

service.transfor()

, но ваш пример кода показывает этот метод:

public SearchResponse transfor(SearchResponse response)

Показанный вами метод принимает входной параметр, но вы его не передаете,Похоже, вы не вызываете метод, который собираетесь тестировать.Если это просто ошибка в том, что вы опубликовали, то вам нужно посмотреть, какой объект вы высмеяли, чтобы он был возвращен вызовом response.getJsonList.Если он возвращает объект, тип которого отличается от типа, требуемого методом obj.put, вы можете получить эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...