기본 콘텐츠로 건너뛰기

2월, 2018의 게시물 표시

유닛 테스팅 in R

# 유닛 테스팅 : 코드의 일반적인 사용 상황과 특이한 사용 상황을 테스트하기 위함.#### # 모든 코드를 항상 유닛 테스트로 확인 할 수는 없음. # install.packages("testthat") library(testthat) a=1:3 b=1:3 names(a)=c('a','b','c') > a a b c 1 2 3 > b [1] 1 2 3 #expect_equal(object, expected) 오브젝트가 기대되는 값 익스펙티드와 동일한가 #두 객체가 (거의)같은지를 비교, 부동 소수의 경우 매우 작은 값 이하로 차이나는 두 값은 같은 값으로 취급 expect_equal(a,b) # 벡터에 부여한 이름이 다르므로 실패 #expect_equivalent() #equal 과 달리 속성값만 expect_equivalent(a,b) # 벡터에 부여한 이름을 무시하므로 테스트 성공 #두 객체가 동일 하다는 말 #expect_equal을 피보나치 수열을 이용해 예를 들어보자 fib=function(n){   if(n==0){     return(1)   }   if (n>0) {     return(fib(n-1)+fib(n-2))   } } #expect_equal이용해 fib(0)=1인지 확인 expect_equal(1,fib(0)) #무반응(무반응은 정상 이라는 말) expect_equal(1,fib(1)) #오류메세지 반환. 결과>> #이렇게 에러 메세지가 발생했다면 이에 따라 fib()함수를 올바르게 수정해나가면 된다. #test_that을 사용한 테스트 그룹화#### #그룹화란 test_that 함수를 통해 expect 문장들을 묶어서 실행할 수 있다. test_that("base case",{   expect_equal(1,fib(0))   expect_equa