IDE: Android Studio 2.2.2 | Jmockit: 2.1 | Java: 1.8.0_102-b14Jmockit: Нельзя издеваться над методом toString net.android.Uri class
Я попытался издеваться над методом toString() класса net.android.Uri. Весь метод в этом классе может высмеять OK, но toString().
@Test
public void method(@Mocked final Uri uri) throws Exception {
new NonStrictExpectations() {
{
uri.getHost();
result = "sendViewLog";
uri.getAuthority();
result = "getAuthority";
uri.getEncodedFragment();
result = "getEncodedFragment";
uri.getPort();
result = 8080;
uri.toString(); // <-------
result = "helloWorld";
}
};
sut.method();
}
Результат: Но ToString() возвращает нулевое значение, все выше методы были издевались. Не могли бы вы дать мне решение проблемы решить эту проблему.
PS1: Я понял, что когда я нахожусь на toString метод внутри блока ожиданий. Он показывает это предупреждающее сообщение:
Сообщает о любых вызовах определенных методов, в которых результат этого вызова игнорируется. Оба метода, указанные в настройках инспекции, и методы , аннотированные с org.jetbrains.annotations.Contract (pure = true) . Для многих методов игнорирование результата отлично законно, но для некоторых методов это почти наверняка ошибка. Примерами методов, в которых игнорирование результата вызова, вероятно, будет , будет ошибка: java.io.inputStream.read(), которая возвращает количество фактически прочитанных байтов, любой метод на java.lang.String или java .math.BigInteger, так как все эти методы свободны от побочных эффектов и таким образом бессмысленны, если их игнорировать.
PS2: Когда я проверяю нулевой Ури, например, она проходит. Но код от клиента, который я хочу, чтобы проверить, является uri.toString(). Содержит ("/ видео") Причина uri.toString() == NULL, так содержит ("/ видео") выбрасывает исключение NullPointerException.