как смоделировать конструктор статическим публичным классом, чтобы вызвать исключение - PullRequest
1 голос
/ 09 мая 2019

Я изучаю mockito и power mockito, так что прости меня, если этот вопрос глупМне нужно как-то издеваться над конструктором класса успеха, чтобы вызвать исключение JSONException, но не смог найти какого-либо твердого решения.Кто-нибудь может дать мне несколько советов?

public abstract class ResultJSONWrapper {
    private String json;
    public String toJSON() {
        return json;
    }

    static public class Success extends ResultJSONWrapper {
        public Success(Object result) throws JSONException {
            JSONWriter writer = new JSONStringer();
            writer.object();
            writer.key("status");
            writer.value(HTTP_OK);
            writer.key("data");
            writer.value(result);
            writer.endObject();
            super.json = writer.toString();
        }
    }
}

1 Ответ

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

Mockito не позволяет вам издеваться над конструкторами, а Power Mockito - последнее, что вы должны использовать.

Поскольку ResultJSONWrapper является классом abstract, вы можете просто создать свою реализацию TestResultJSONWrapper, которая будет выбрасывать JSONException во время создания и перейдет к той части кода, которую вы тестируете

public class TestSuccessMock extends ResultJSONWrapper {
    public TestSuccessMock (Object result) throws JSONException {
        throw new JSONException();
    }
}

Так что, в основном, я советую не использовать Mockito для этой цели

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