问题描述
我有一个关于如何最好地测试我正在为 Android 工作的记录器类的问题。这个记录器类在“实际”使用期间写入内部存储中的 Android 日志文件,但我试图找出模拟它以进行测试的最佳方法,因为 getFilesDir() 在仪器测试期间。
理想情况下,我可以在测试期间从我的记录器类中写入日志文件,然后在测试期间读取该文件,检查我的日志是否符合预期。
我环顾四周并尝试在我的测试中为此目的使用 TemporaryFolder。我能够从我的测试类中漂亮地读取和写入这个文件,但是我无法从测试实例中的 MyLogger 类中写入这个文件。在我的 MyLogger 类构造函数中,我试图在测试期间在 TemporaryFolder 目录中创建一个文件,我收到此错误:
打开失败:EROFS(只读文件系统)
你能帮助我了解测试记录器类的最佳方式吗?我想在这里使用实际文件的原因之一是,如果可能的话,我还想对文件轮换进行测试覆盖。
仪器测试
java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1771)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
at FutureWithCollector.finalize(FutureWithCollector.java:23)
at FutureWithCollector.main(FutureWithCollector.java:15)
0
类构造器
@RunWith(AndroidJUnit4.class)
public class MyLoggerTest{
@Rule public TemporaryFolder mTempFolder = new TemporaryFolder();
@Test
public void testCreateLogFile() {
try {
mTempFolder.newFolder("baseFolder");
MyLogger logger = new MyLogger(mTempFolder + "/baseFolder/");
} catch(Exception e) {
fail(e.getMessage());
}
}
}
谢谢!我爱你 Stack Overflow 社区!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)