I have a class in which a directory is created if a property is set. Now every Time I run the test the directory is created in my FileSystem. Is there a way to mock the the file/filesystem?
Class under test:
@Service("InitializeEnvironment")
public class EnvironmentChecker implements InitializingBean {
@Value(value="${delivered_dir}")
private String delivered_dir;
@Override
public void afterPropertiesSet() throws Exception {
if (!StringUtils.isEmpty(delivered_dir)){
File dir = new File(delivered_dir);
if (!dir.exists()) {
dir.mkdirs();
}
}
}
}
UnitTest
public class EnvironmentCheckerTest {
@Test
public void testMailHostNichtGesetzt() throws Exception{
EnvironmentChecker environmentChecker = new EnvironmentChecker();
setValue(environmentChecker, "delivered_dir", "./");
environmentChecker.afterPropertiesSet();
}
private void setValue(Object target, String fieldname, Object value){
Field field = ReflectionUtils.findField(target.getClass(),fieldname);
ReflectionUtils.makeAccessible(field);
ReflectionUtils.setField(field, target, value);
}