• R/O
  • SSH
  • HTTPS

amateras: Commit


Commit MetaInfo

Revisión712 (tree)
Tiempo2013-03-20 03:30:16
Autortakezoe

Log Message

ドキュメントを作成。

Cambiar Resumen

Diferencia incremental

--- s2jdbc-mock/trunk/s2jdbc-mock/README.md (nonexistent)
+++ s2jdbc-mock/trunk/s2jdbc-mock/README.md (revision 712)
@@ -0,0 +1,87 @@
1+s2jdbc-mock
2+=================
3+
4+S2JDBCを使ったサービスやDAOのユニットテストを支援するライブラリです。
5+実際にDBに接続するのではなく、実行されたSQLが期待通りのものかどうかをチェックするための手段を提供します。
6+
7+s2jdbc-mockを使用するにはpom.xmlに以下の依存関係を追加します。
8+
9+```xml
10+<repositories>
11+ <repository>
12+ <id>amateras</id>
13+ <name>Project Amateras Maven2 Repository</name>
14+ <url>http://amateras.sourceforge.jp/mvn/</url>
15+ </repository>
16+</repositories>
17+
18+<dependencies>
19+ <dependency>
20+ <groupId>org.seasar.s2jdbcmock</groupId>
21+ <artifactId>s2jdbc-mock</artifactId>
22+ <version>1.0.0</version>
23+ </dependency>
24+</dependencies>
25+```
26+
27+設定ではユニットテスト用のs2jdbc.diconでJdbcManagerを定義している部分をorg.seasar.s2jdbcmock.MockJdbcManagerに変更するだけです。
28+
29+テストケースではorg.seasar.s2jdbcmock.S2JdbcUnitのメンバをstaticインポートしてSQLの検証を行うことができます。
30+以下はS2JUnit4を使用した場合のテストケースの例です。
31+
32+```java
33+package org.seasar.s2jdbcmock.service;
34+
35+import static junit.framework.Assert.*;
36+import static org.seasar.s2jdbcmock.S2JdbcUnit.*;
37+
38+...
39+
40+@RunWith(Seasar2.class)
41+public class EmployeeServiceTest {
42+
43+ protected EmployeeService sampleService;
44+
45+ @Before
46+ public void init(){
47+ initS2JdbcUnit();
48+ }
49+
50+ @Test
51+ public void testGetEmployeeTx(){
52+ // サービスのメソッドを実行
53+ sampleService.getEmployee(1);
54+ // 正規表現でSQLを検証
55+ verifySqlByRegExp(0, "SELECT .* FROM EMPLOYEE .* WHERE .*EMP_ID = \\?", 1);
56+ }
57+
58+}
59+```
60+
61+上記の例では正規表現で検証していますが、SQLは空白や改行、大文字小文字、コメントなどを適度に正規化して比較しているので、
62+厳密に文字列として完全一致するように記述しなくても大丈夫です。
63+
64+サービスクラスのメソッドによってはJdbcManagerの戻り値によって処理が分岐するようなケースもあるでしょう。
65+そのような場合はS2JdbcUnit#addResult()メソッドでJdbcManagerが返却する値を設定することができます。
66+MockJdbcManagerはSQLを実行するためにaddResult()された値を順番に返却します
67+(INSERTやUPDATE時の更新件数も戻り値なのでaddResult()で設定しておくことができます)。
68+
69+```java
70+@Test
71+public void testGetEmployeeTx(){
72+ // JdbcManagerの返却値を設定
73+ Employee result = new Employee();
74+ ...
75+ addResult(result);
76+
77+ // サービスのメソッドを実行(上でセットしたエンティティが返却される)
78+ Employee employee = sampleService.getEmployeeList();
79+ ...
80+}
81+```
82+
83+リリースノート
84+--------
85+### 1.0.0 - 20 Mar 2013
86+
87+* AmaterasのMavenリポジトリにデプロイして利用できるようにしました。
Show on old repository browser