非常不清楚您要完成什么。我完全不确定你为什么要首先做这样的事情。
正如我在评论中所说,您当前示例无法编译的原因是File.mkdir()
返回 aboolean
并Comparable.compareTo(Comparable)
返回 a int
。但是,如果您正在模拟返回 a 的方法,则可以编译boolean
,如下所示:
public class Foo {
public static void main(String[] args) {
File file = new File("/tmp/111");
Bar bar = mock(Bar.class);
when(bar.isTrue()).thenReturn(file.mkdir());
}
public static interface Bar {
public boolean isTrue();
}
}
也就是说,我严重怀疑这会做你想要的。该行when(bar.isTrue()).thenReturn(file.mkdir());
实际上调用 file.mkdir()
. 因此,您的目录将在您创建模拟时创建。换句话说,前面的例子可以(并且应该)等价地写成:
public class Foo {
public static void main(String[] args) {
File file = new File("/tmp/111");
Bar bar = mock(Bar.class);
boolean dirMade = file.mkdir();
when(bar.isTrue()).thenReturn(dirMade);
}
public static interface Bar {
public boolean isTrue();
}
}
像这样编写它可以避免在实际创建目录时产生任何混淆。