How to test write to file in Java?

前端 未结 3 1252
花落未央
花落未央 2020-12-30 16:02

I\'m beginner, and keep yourself in hands. I have some easy program, and I need do junit test for write method. I have some collection in input. How I can do this? This my

3条回答
  •  心在旅途
    2020-12-30 16:39

    You probably don't need mocks at all. Try using StringWriter in your tests.

    // write to file
    public void write(String fileName, List figuresList) {
      try {
        Writer out = new FileWriter(new File(fileName).getAbsoluteFile());
        write(out, figuresList);
      } catch (IOException e) {
        System.out.println("Cannot write to file!");
      }
    }
    
    @VisibleForTesting void write(Writer writer, List figuresList) {
      PrintWriter out = new PrintWriter(writer);
      try {
        for (int i = 0; i < figuresList.size(); i++) {
          out.println(figuresList.get(i).toString());
        }
      } finally {
        out.close();
      }
    }
    
    @Test public void testWrite() {
      List list = Lists.newArrayList();
      list.add(...); // A
      list.add(...); // B
      list.add(...); // C
      StringWriter stringWriter = new StringWriter();
      write(stringWriter, list);
      assertEquals("A.\nB.\nC.\n", stringWriter.toString()); 
    }
    

提交回复
热议问题