for 반복문 소스코드 예제 fun forLoop(){ println("[for] 반복문") val items = listOf("apple", "banana", "kiwi") // A for(item in items) { println(item) } // B for(index in 0..(items.size-1)) { println("이건 item at $index is ${items[index]}") } // C for(index in 0 until items.size) { println("이건 item at $index is ${items[index]}") } // D for(index in items.indices) { //indices -> 0..2 println("item at $index is..
이번에는 코틀린의 공식홈페이지에 있는 Getting Started에 정리된 내용을 제가 이해한대로 정리해보았습니다. 코틀린 공식홈페이지 Getting Started 주소는 아래와 같습니다. https://kotlinlang.org/docs/reference/basic-syntax.html Basic Syntax - Kotlin Programming Language kotlinlang.org 일단, 모든 내용을 테스트할 수 있는 main 함수입니다. fun main(){ println(sum(10, 20)) println(sum2(10, 20)) printSum(10, 20) printSumNoUnit(10, 20) println("1과 10중 최댓값은 ${maxOf(1,2)}입니다."); println(..
안녕하세요. 오늘은 코틀린 공부를 하기에 앞서 프로젝트를 생성하는 방법에 대해서 공유하고자 합니다. 일단 저는 IntelliJ Ultimate 버전(유료)을 사용하고 있는데, IntelliJ Community(무료) 버전으로도 생성이 가능한 것을 확인하고 커뮤니티버전의 인텔리제이로 생성하는 방법을 공유합니다. 일단 인텔리제이 커뮤니티가 안깔려 있으신 분들은 설치를 해주시고 바로 프로젝트 생성부터 가보겠습니다. * Kotlin은 JDK/JVM 기반 프로그래밍 언어이기 때문에 자바가 설치되어있어야합니다. 1. Create New Project 클릭 일단 커뮤니티 버전을 실행하고나면 가장 먼저 나오는 화면입니다. 빨간 부분의 버튼을 클릭합니다. 2. 언어 Kotlin 선택, JVM 기반 선택 좌측에 여러가지 ..
안녕하세요. 오늘은 JUnit4 버전을 사용해서 파라미터를 반복해서 테스트할 수 있는 방법에 대해서 포스팅해보고자 합니다. 이전 포스팅에서는 JUnit5의 테스트 반복에 대해서 다뤄봤는데요. JUnit5에서는 기본적으로 @ParameterizedTest 라는 어노테이션을 사용해서 @CsvSource, @ValueSource라는 어노테이션을 이용하여 파라미터를 전달하였습니다. 하지만 JUnit4버전에서는 별도의 의존성을 추가해주셔야 하는데요. 바로 JUnitParams라는 의존성입니다. pom.xml에 JUnitParams의 의존성을 추가해줍니다. pl.pragmatists JUnitParams 1.1.1 test 해당 의존성을 추가하면 테스트 클래스를 생성할 때, @RunWith() 어노테이션의 argu..
안녕하세요. 오늘은 여러가지 파라미터값으로 하나의 단위테스트를 반복적으로 실행하여 하나의 단위테스트라도 여러 파라미터값으로 복합적으로 테스트해볼 수 있는 내용을 포스팅해보고자 합니다. 사전준비 pom.xml에서 어떤 의존성을 사용하실지 헷갈리실 분들을 위해 pom.xml 을 보여드리도록 하겠습니다. 4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.0.RELEASE woo.sunghwan inflean-the-java-test 0.0.1-SNAPSHOT inflean-the-java-test Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter org.spri..
대부분 assert 단언문을 사용할 때 @Test public void test_1() { assertTrue(false, "false일 떄 메시지 출력"); } assertTrue( boolean condition, String message); 다음과 같이 assertXXX메소드에 인자 2가지를 전달하게 됩니다. 이 중에서 결과는 true인데 message를 전달할 때, 여러가지 케이스가 복잡하게 존재하는 경우.. 과연 다음 테스트에 걸리는 시간이 얼마나 될까요..? @Test public void test_1() { long start = System.currentTimeMillis(); assertTrue(true, getMessage()); long end = System.currentTimeM..
JUnit5 Assertion 기본 메소드 종류 1. assertTrue, assertFalse (boolean condition, String message) - argument로 특정 조건 및 boolean 값을 넘기고 assertTrue인 경우 false일때, assertFalse인경우 true일때, junit 에러를 발생시키며 message를 메시지로 리턴한다. 2. assertNotNull, assertNull (Object object, String message) - argument로 객체를 넘기면 객체가 null 일경우와 not null 일 경우 예외 메시지로 message를 리턴하게 된다. 위의 두가지 메소드와 엇비슷한 용도로 사용된다. * 위의 메소드처럼 assertXXX로 시작하는 메..
update, insert 쿼리보통 update, insert 를 하는 경우 mapper xml 파일에 다음과 같이 적곤 한다. INSERT INTO TABLE_A (column1, column2, column3) VALUES (#{param1}, #{param2}, #{param3}); UPDATE TABLE_A SET column2 = #{param} WHERE seq = #{seq}; 거의 대부분은 이런식일 것이다. 이렇게 seq가 정해지고 딱딱 들어간다면 얼마나 좋을까..하지만 실무에서는 특정 where 절에 대하여 조건을 가진 행만이 update되고 이는 사전에 어떤 seq를 가지는 row가 update 처리가 될지 미리 예측하기는 같은 조건으로 select를 해보기 전에는 모르는게 일반적이다...