2012-03-30 9 views
0

私は、Groovy SQLを使ってデータベースへのSQL呼び出しを行うサービスを持っています。 dataSourceがnullであるため、このサービスのテストは失敗しています。データソースをユニットテスト内の適切な接続にするにはどうすればよいですか?上記の例ではSQLとdataSourceを使ったテストサービス

ExampleService.groovy

class ExampleService { 
    def dataSource 

    def getSQL() { 
     def sql = new Sql(dataSource) 
     def query = "some query" 
     sql.call(query) 
     sql.close() 
    } 
} 

ExampleServiceTests.groovy

@TestFor(ExampleService) 
class ExampleServiceTests { 
    void testExample() { 
     def es = new ExampleService() 
     es.getSQL() 
    } 
} 

私は次のエラーを取得する:

java.lang.NullPointerException: Must specify a non-null Connection 
+0

def es = new ExampleService() – Churk

+0

あなたは正しいChurkです。それは私の部品のタイプミスです。ありがとうございました。 – thomj

答えて

5

何のデータベースiはありませんn個のユニットテストは、統合テストでのみ使用できます。ユニットテストでは、アクティブなSpring、Hibernate、データベース、プラグインなどが存在しないため、モックを使用します。永続性は、メモリ内のHSQLまたはH2データベース、またはMySQL/Postgres/Oracle/etc。データベース。

関連する問題