JUnit 내에서 호출되는 메서드에 @Test를 붙여서 테스트코드가 정상적으로 실행이 안됨...
@Test
public void insertUserTest() throws Exception {
User user = new User("asdf11", "1234", "abc", "aaa@aaa.com", new Date(), "instar", new Date());
// int rowCnt = insertUser(user);
selectUser(user);
// assertTrue(rowCnt == 1);
}
// @Test를 붙이니까 계속 에러가 났음
public int insertUser(User user) throws Exception {
Connection connection = ds.getConnection();
// insert into user_info (id, pwd, name, email, birth, sns, reg_date)
// values ('asdf2', '1234', 'smith', 'aaaa@aaaa.com', '2021-01-01', 'facebook', now());
String sql = "insert into user_info values (?, ?, ?, ?, ?, ?, now())";
// 기존 Statement 보다 향상된 점 : SQL Injection공격, 성능향상(캐싱 효과가 있음)
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, user.getId());
pstmt.setString(2, user.getPwd());
pstmt.setString(3, user.getName());
pstmt.setString(4, user.getEmail());
// pstmt.setDate( 5, (java.sql.Date)new Date(user.getBirth().getTime()));
pstmt.setDate(5, new java.sql.Date(user.getBirth().getTime()));
pstmt.setString(6, user.getSns());
System.out.println("pstmt = " + pstmt);
System.out.println("user = " + user);
int rowCnt = pstmt.executeUpdate(); // insert, delete, update 일때 씀
return rowCnt;
}
///////ERROR CODE/////////
org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.fastcampus.ch3.DBConnectionTest2Test':
1. Method insertUser() should be void
2. Method insertUser should have no parameters
at org.junit.runners.ParentRunner.validate(ParentRunner.java:525)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:92)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:74)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:137)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
이와 같은 문제 때문에 몇일을 잡은건지... 바빴다 치지만 살짝 한심하다...