package.json을 아래와 같이 수정한후에 npm run test라고 실행하면 테스트를 시작한다.
1 2 3 4 5
{ "scripts" : { "test": "jest" } }
describe와 it을 이용한 테스트 코드 작성
위에서는 test 함수를 통해서 테스트 코드를 작성하는 방법에 대해서 알아보았다. Jest에서는 이 뿐 아니라 describe와 it을 통해서도 작성 가능하다. describe은 일종의 테스트 그룹이고, it은 작은 단위의 테스트이다. it이 위의 test와 같은 단위이다.
1 2 3 4 5
describe('', () => { it('', () => { // 테스트 코드 작성 }) });
DO $$ DECLARE r RECORD; BEGIN -- if the schema you operate on is not "current", you will want to -- replace current_schema() in query with 'schematodeletetablesfrom' -- *and* update the generate 'DROP...' accordingly. FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP EXECUTE'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; ENDLOOP; END $$;
@Test publicvoidtest5(){ ArrayList arrayList = new ArrayList(); arrayList.setNames(Arrays.asList("woman", "man"));
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("names[0]"); EvaluationContext evaluationContext = new StandardEvaluationContext(arrayList); // rootObject를 여기에 바로 쓸수도 있다. String message = exp.getValue(evaluationContext, String.class);
System.out.println(message); }
1
woman
값을 가져오는 것 말고도 값을 변경할수도 있습니다. 유의 해야할 점은 값을 추가해주는게 아닌 변경해주는 것입니다.
1 2 3 4 5 6 7 8 9 10 11 12
@Test publicvoidtest6(){ ArrayLists arrayLists = new ArrayLists(); arrayLists.setNames(Arrays.asList("man"));
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("names[0]"); EvaluationContext evaluationContext = new StandardEvaluationContext(arrayLists); exp.setValue(evaluationContext, "woman");
값을 변경해주는 기능은 배열 뿐 아니라 일반 객체에서도 사용 가능합니다. 이때 필드는 public 이거나 setter 메소드가 구현되어 있어야 합니다.
1 2 3 4 5 6 7 8 9 10 11
@Test publicvoidtest7(){ SpELVO spELVO = new SpELVO("jesi");
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("name"); EvaluationContext evaluationContext = new StandardEvaluationContext(spELVO); exp.setValue(evaluationContext, "sara");
System.out.println(spELVO.getName()); }
SpelParserConfiguration
SpelParserConfiguration를 사용 하면 Collection에서 index가 null일 경우에 자동으로 생성해주는 기능을 활성화 할수 있습니다.
아래의 예제에서는 배열에서 index가 null인 요소에 접근하려고 할때 자동으로 배열에 빈값이 추가된것을 확인 할수 있습니다. SpelParserConfiguration 생성자의 두번째 파라미터를 true로 전달하면 기능을 활성화 할수 있습니다(기본값은 두개 모두 false).
1 2 3 4 5 6 7 8 9 10 11 12
@Test publicvoidtest8(){ ArrayLists arrayLists = new ArrayLists();
SpelParserConfiguration configuration = new SpelParserConfiguration(false, true); ExpressionParser parser = new SpelExpressionParser(configuration); Expression expression = parser.parseExpression("names[4]"); String name = expression.getValue(arrayLists, String.class);
@Test publicvoidtestValidation(){ Event event = new Event(); // 타겟 객체 EventValidator eventValidator = new EventValidator(); // 검증 Validator
// BeanPropertyBindingResult는 Erros와 BindingResult의 구현체로써 보통은 웹에서는 MVC가 해당 객체를 생성하기 때문에 직접 생성할 일은 적다. Errors errors = new BeanPropertyBindingResult(event, "event");