출처 : 1400페이지짜리 '토비의 스프링' 서적
간단한 파일 입출력 리펙토링 과정을 보여준다.

우선 기본적으로 알아야 하는 건 JUnit 방법이다..

검색해보면 금방 알수 있으므로 해보삼^^

실제 계산하는 Calculator.java

package springbook.learningtest.template;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Calculator {
public Integer calcSum(String filepath) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(filepath));
int sum = 0;
String line = null;
while( (line=br.readLine())!=null ){
sum += Integer.parseInt(line);
}
br.close();
return sum;
}
}

이걸 이용하는 구현 클래스는 CalcSumTest.java

여기서 빨간부분을 주의해서 보도록..

package springbook.learningtest.template;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.io.IOException;

import org.junit.Test;

public class CalcSumTest {
@Test
public void sumOfNumber() throws IOException{
Calculator calculator = new Calculator();
int sum = calculator.calcSum(getClass().getResource("numbers.txt").getPath());
assertThat(sum,is(10));
}
}


여기서 문제점은 try/catch/finally를 안넣어서 중간에 예외가 발생하면 자원반납을 안해줘서 문제가 됨.

그래서 2단계에선 묶어줌..

+ Recent posts