How to read a text-file from test resource into Java unit test?

+1 vote
14 views
asked Nov 20 by Hitesh Garg (434 points)  

Currently, I am testing a RestController in Java and using MockMVC to test the endpoint. Right now I am building the Object required by the method and then sending its json to the endpoint.

But by this method tests are getting lengthy and I want to extract this json out in a .json file in test resources something like src/test/resources/somefilename.json.

I am currently facing some difficulty on how to read the test file for a Junit test from test resources.

1 Answer

+1 vote
answered Nov 21 by Rahul Singh (644 points)  
selected Nov 21 by Hitesh Garg
 
Best answer

I generally prefer a very simple basic one without use of any libraries..

From Java 11 version

Since Java 11 there is a new method readString() to read small files as a String, preserving line terminators:

String content = Files.readString(path, StandardCharsets.US_ASCII);

Using getClass().getClassLoader(). getResourceAsStream(fileName)

private String slurpResources(String fileName) throws IOException {
  var classLoader = getClass().getClassLoader();
  return new String(classLoader.getResourceAsStream(fileName).readAllBytes());
}
...