spring batch 를 이용해 많은 batch job 을 만들지만 배치를 테스트하기란 쉽지않다. 하지만 배치도 분명한 하나의 애플리케이션인만큼 테스트 작성에 대한 욕구가 있었는데 그것들을 정리해보고자한다. 먼저 spring batch reference 에서 테스트 코드에 대해 가이드하고있는 부분이 있는데 가이드 문서가 불친절해 제대로 테스트를 작성하기 힘들었다. 실전 엔터프라이즈 애플리케이션에서는 해당 가이드대로 했을때 도저히 테스트를 구동할 수 없었고, 많은 삽질끝에 얻은 결론을 정리하려한다. # batch job 작성 @Configuration class SampleBatch( private val jobBuilderFactory: JobBuilderFactory, private val stepB..
기존 운영중인 자바 프로젝트에서 테스트코드를 코틀린으로 작성하고자했다.어떤 것들을 해줘야하는지 찾아봤는데 정말 별거 없다. plugins { id 'org.jetbrains.kotlin.jvm' version '1.3.20' } 이것만 추가해주면 바로 코틀린 클래스를 만들어서 테스트 코드를 작성할 수 있다. class KotlinTest { @Test fun `안녕 코틀린`() { assertThat("hello").isEqualTo("hello") } }
요즘 슬슬 코틀린에 대해 알아보고있다. 이제 막 시작하는단계라 거창하게 적을건없고 간략하게 코틀린 테스트 프레임워크인 spek을 이용해 테스트 코드를 작성하는 법을 알아보자. 일단 IntelliJ에서 개발한다는 전제하에 작성한다. 1. Spek plugin 설치 Spek 플러그인을 설치하자. 2. DependenciesSpek을 사용하기 위해서는 일단 "org.jetbrains.spek:spek-api" 의존성이 당연히 필요하고, "org.jetbrains.spek:spek-junit-platform-engine" 의존성도 필요하다. Spek 의존성만 있어도 아무런 문제없이 컴파일이 되겠지만 junit이 있어야 실행이된다. (junit이 없으면 런타임에 예외가 발생하며 테스트가 진행되지 않는다.) gra..
요즘 테스트와 nodejs에 관심이 많아지면서 두 개를 섞은 nodejs에서 테스트하는것에 대해 포스팅을 해보고자한다. 아주 간단한 내용에 대해 나름 자세하게 포스팅을 할 예정이다. 이런식으로 작성하는 이유는 이런 포스팅을 내가 찾지못해서 꽤 삽질을 했기때문이다.nodejs에 대해서는 이해도가 충분치않은 상태이기때문에 중간 설명에 잘못된 설명이 있을수 있다. 일단 nodejs가 설치되어있어야한다. https://nodejs.org/ko/nodejs를 설치했으면 테스트 예제를 작성할 프로젝트를 생성하자. 나는 test-environment 라는 이름으로 생성했다. 생성한 프로젝트로 들어와서 npm init 커맨드로 node 프로젝트임을 초기화하면 된다. mkdir test-environment && cd ..
1. Groovy 앞선 포스팅에선 jUnit으로 테스팅하는걸 소개했었다. 이번포스팅에서는 또다른 JVM언어인 Groovy로 테스트를 해보겠다. Groovy로 작성하는 이유는 가독성때문이다. 테스트 코드는 실제 프로덕션 환경에서 구동되는게 아니기때문에 성능 이슈는 비교적 신경쓸이유가 적은데, 그루비는 자바에 비해 간결한 문법(아주 별거 아니지만 기본 접근제어자가 public이기때문에 코드에 public을 적을 필요가 없다.)과 최신기술들을 많이 지원해주고있어 테스트의 가독성을 끌어올릴 수 있다. 포스팅을 하고있는 본인 역시 그루비라는 언어를 잘 안다거나 그루비로 테스트를 많이 작성해본 상태는 아니다. 블로그에 글을 씀으로서 한번 시작해보려고 하는 1인에 불과하다. 일단 한번 해보자. dependencies..
1. jUnit Test자바로 테스트코드를 짤때 가장 유명한 프레임워크는 jUnit이다. 먼저 테스트 코드를 한번 만들어보자. dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }jUnit 의존성을 추가해주자(아주 간단한거지만 처음으로 gradle을 사용해본다!). 아주간단한 계산기 클래스를 만들어보자. 가장 처음 만들건 더하기 연산이다. 테스트코드부터 만들어보자. @Test public void plus() throws Exception { // given Calculator calculator = new Calculator(); // when int result = calculator.plus(2, 5); // then..
Test Driven Development 의 약자로 테스트 주도 개발이라는 뜻이다.기존에는 폭포수방식이라고해서 설계가 진행되면 구현, 구현 후 테스트, 테스트 후 인수 이런 방식으로 일단 설계한대로 모든 개발이 끝나고나면 테스트를 진행하는 방식이었는데 이런식으로 하다보니 에러가 발생했을때 해당 에러를 찾고, 수정하는데 있어 소모되는 시간과 비용이 너무 커져 이를 바꿔보고자하고 나온것이다. 개발이 완료되면 테스트를 하는것이 아니라 구현의 가장 아랫부분인 메서드 구현단계부터 지속적인 테스트를 통해 개발을 함으로서 지속적인 테스트를 하게되고 문제점을 보다 빨리 찾아내어 적은 비용으로 에러를 처리하고 완성도높은 소프트웨어를 개발하고자 하는것이다. '주도'라는 단어에 좀 더 집중을 해야하는데 메서드를 구현한 후..
TDD라는 개발론이 있다. Test Driven Development 의 줄임말인데 우리말로는 테스트 주도 개발 이라고 한다.절차를 밟아가며 차례차례 진행 후 제품을 모두 개발한 후에 테스트를 진행하는 기존 폭포수방식에서 벗어나 모듈, 함수별로 즉각즉각 테스트를 진행하며 개발을 하자는 것이다.뼈대를 다 만든후 테스트를 진행하는 기존 폭포수 모델의 경우 에러 혹은 의도치 않은 값이 나올경우 디버깅을 하는것도 힘들뿐더러 비용도 많이 소모된다. 하지만 함수, 메서드 하나를 만드는 와중에도 테스트를 진행하기때문에 에러를 보다 빨리 발견할수있고 수정에 소모되는 비용도 줄어든다. 또한 그만큼 제품의 완성도도 올라가게된다. TDD에서 직접적으로 제안하는건 일단 실패코드를 작성하는 것이다. 최종적으로 원하는 함수를 먼..
java script의 단위테스트 라이브러리인 qunit 활용법 test("테스트 설명", function(){ equal(실제값, 기대값, "테스트 설명"); //실제값과 기대값이 동일하면 성공 == 연산자로 비교하기때문에 형변환을 감안해야함. notEqual(); //실제값과 기대값이 다르면 성공 != 연산자로 비교함. strictEqual(); //=== 연산자로 비교. (1, "1", "테스트!"); 일시 테스트는 실패한다. notStricEqual(); //!== 연산자로 비교. ok(boolean, "테스트 설명"); //첫번째 인자가 true 면 성공. deepEqual();/* 참조타입을 값으로 비교하게됨. 예를들어 var obj = { age : 27 }; equal(obj, { age ..
- Total
- Today
- Yesterday
- frontend개발환경
- MySQL
- http
- servlet
- Spring
- javascript
- JPA
- code
- spring cloud
- toby
- DesignPattern
- Kotlin
- generics
- JavaScript Core
- TEST
- 정규표현식
- clean code
- java8
- java
- mariadb
- frontcode
- Git
- go-core
- programming
- Design Pattern
- db
- EffectiveJava
- backend개발환경
- OOP
- Jackson
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |