相关疑难解决方法(0)

用Java模拟文件

我正在尝试为采用String文件名的方法编写单元测试,然后打开文件并从中读取.因此,为了测试该方法,我考虑编写一个文件,然后调用我的方法.但是,在构建服务器场中,无法将文件任意写入磁盘.有没有一种标准的方法来"模拟"我的单元测试中有一个真实的文件?

java unit-testing

8
推荐指数
2
解决办法
2万
查看次数

单元测试文件用Java编写,没有接口包装器

我有一个写入文件的现有Java类.

public final class WriteToFile{

    private Writer file_writer;
    private static final String encoding_format = "UTF8";
    private FileWrite(final File fpath) throws IOException {
        this.file_writer = new OutputStreamWriter(new FileOutputStream(fpath), encoding_format);
    }

    @Override
    public void fileWrite(final String msg) {
        try {
            this.file_writer.write(msg);
            this.file_writer.write("\n");
            this.file_writer.flush();
        this.file_writer.close();
        } catch (IOException e) {
            log.error("File write failed", e);
        }
    }

    }
Run Code Online (Sandbox Code Playgroud)

为了对此进行单元测试,我了解到使用Mocking框架创建文件模拟并不是一个好习惯.我在这里测试什么?测试这个的唯一方法是再次执行文件写入,并检查预期内容和实际内容是否相同.在这种情况下,以JUnit方式执行此操作将如本文中提到的如何在Java中测试写入文件?.但是,我不打算重写文件编写代码,以包含接口包装器.我该如何解决这个问题?

@Test public void testfileWrite() {
  String msg = "somemessage";
  String fpath = "path/to/file";
  Writer file_writer = new OutputStreamWriter(new FileOutputStream(fpath), "UTF8");
  file_writer.write(msg);
  assertEquals("somemessage", file_writer.toString()); …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing

0
推荐指数
1
解决办法
1003
查看次数

标签 统计

java ×2

unit-testing ×2

junit ×1