달력

5

« 2014/5 »

  • 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

'2014/05'에 해당되는 글 2

  1. 2014.05.19 Spring 의 SimpleJdbcCall 이용시 에러.
  2. 2014.05.08 JavaScript Unit Test - QUnit
2014. 5. 19. 16:40

Spring 의 SimpleJdbcCall 이용시 에러. 그거/Java2014. 5. 19. 16:40

spring 을 이용하여 Oracle 의 Stored procedure 를 호출하는데,

계속 인수가 맞지 않다고 에러를 뱉어낸다.

Junit test 돌려보면 지극히 정상인데.. 시스템에서는 에러를 내고 있으니. 당췌 원인을 알 수가 없다는.

jdbc driver 문제인가, 아니면 사용중인 library 가 문제인가.

여기 저기 뒤져보고.. 별 짓을 다 해봐도 안됐다는...


시스템 담당자에게 procedure 생성 script 달라고 해서 원인 분석


o. junit  test 환경

 - local db 에 abc user 로 접속

 - abc user 가 procedure 생성

 - test 수행 시 abc user 로 수행

 - procedure 정상 호출됨


o. system 환경

 - remote db 에 def user 로 접속

 - dba user 가 procedure 생성

 - dba user 가 생성한 procedure 에 대해 def user 에 synonym 생성

 - 생성된  procedure 에 대해서 def user 에 실행권한 부여

 - def user 로 procedure 호출

 - 인수가 맞지 않다고 오류 발생


마지막이란 심정으로다가, system 환경을 local 에서 재현해봄.

1. local db 에 def user 생성

2. abc user 가 생성한 procedure 에 대해 def user 에 synonym 생성

3. abc user 가 생성한 procedure 에 대해 def user 에게 실행권한 부여

4. def user 로 procedure 호출

=> 인수가 맞지 않다고 오류 발생


드디어 원인 발견!


실제 procedure 를 실행하는 db user 는 synonym 을 보고 있기 때문에,

다른 db user 가 생성한 procedure에 대한 meta 정보를 못가져오는듯 하다.

(짐작임)


그래서, SimpleJdbcCall 사용할 때 withSchemaName("abc") 을 하니 잘 되더란!

끝.

'그거 > Java' 카테고리의 다른 글

JSP 의 EL 과 JSTL  (0) 2013.08.09
enum 사용하기  (0) 2013.05.02
자바 소스 디컴파일 해보기.  (0) 2013.04.11
Runtime Data Access  (0) 2012.07.30
NoClassDefFoundError vs ClassNotFoundException  (0) 2011.10.11
:
Posted by 뽀기
2014. 5. 8. 17:46

JavaScript Unit Test - QUnit 그거/기타2014. 5. 8. 17:46


QUnit 이란?

JavaScript 개발에 사용하기 위한 Unit Test Framework


QUnit 은 어디서?

http://qunitjs.com/


QUnit 을 시작하려면?

필요한 파일은 qunit-1.14.0.js, qunit-1.14.0.css

아래 내용으로 html 파일 작성.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Example</title>
<link rel="stylesheet" href="qunit-1.14.0.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="qunit-1.14.0.js"></script>
<script src="tests.js"></script>
</body>
</html>

test.js 파일은 QUnit 이용해서 Unit Test 를 하기 위한 script 파일.


QUnit 으로 테스트 하려면?

test.js 파일에 아래와 같이 코딩.

1
2
3
test( "hello test", function() {
ok( 1 == "1", "Passed!" );
});

기본적으로 test("테스트명", function() { ... }); 형식으로 이루어져 있음


위 코딩 내용은

line 1 : "hello test" 를 실행하겠음

line 2 : ok( 1 == "1", "Passed!"); 를 실행하겠음

여기에서 line 2 의 ok(state, msg) 는 JUnit 에서의 assert 류의 method 와 동일함

즉, state 인 1 == "1" 가 true 이면 msg 출력.


더 많은 assert 류의 function 은 여기(클릭)에서 확인 가능



결과는 아래와 같음.

QUnit Example

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36

Tests completed in 931 milliseconds.
1 assertions of 1 passed, 0 failed.

  1. hello test (01, 1) Rerun9 ms


위의 1. hello test (0,1,1) 는 차례대로 실패 0개, 1개 성공, 1개 Assert 수행 을 나타냄


async 방식의 javascript 도 테스트 할 수 있고, callback 도 처리 가능하며,

다른 툴에 포함되서 사용될 경우를 대비한 QUnit callback API 도 제공한다.

보다 자세한 사항은 여기(클릭)에서~

:
Posted by 뽀기