Jmockit:不能模拟net.android.Uri类的toString类
问题描述:
IDE:Android Studio 2.2.2 | Jmockit:2.1 | Java:1.8.0_102-b14Jmockit:不能模拟net.android.Uri类的toString类
我试图模拟方法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: 我意识到当我将鼠标悬停在Expectations块内的toString方法时。它显示此警告消息:
将所有呼叫报告给特定方法,忽略该呼叫的结果 。在检查的设置和 方法中指定的两种方法都会被检查,org.jetbrains.annotations.Contract(纯粹= true) 。对于很多方法,忽略结果是合理的,但对于某些方法来说,这几乎肯定是一个错误。 忽略调用结果的方法示例很可能是 是一个包含java.io.inputStream.read()的错误,它返回 实际读取的字节数,java.lang.String上的任何方法或者 java .math.BigInteger,因为所有这些方法都是无副作用的,因此如果被忽略,这样毫无意义。
PS2: 当我检查由URI实例为null,它传递。 但是,从客户端,我想检查代码uri.toString()。包含( “/视频”) 原因uri.toString() == NULL,所以包含( “/视频”)抛出NullPointerException。从开发商