2012-03-30 14 views
0

Ich habe einen Dienst, der Groovy SQL verwendet, um einige SQL-Aufrufe an die Datenbank vorzunehmen. Meine Tests für diesen Service sind fehlgeschlagen, da dataSource null ist. Wie bekomme ich dataSource als die geeignete Verbindung innerhalb eines Komponententests?Testing Service mit SQL und 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() 
    } 
} 

Im obigen Beispiel ich die folgende Fehlermeldung erhalten:

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

def es = neu ExampleService() – Churk

+0

Sie sind richtig Churk, das war ein Tippfehler meinerseits, Danke. – thomj

Antwort

5

Es gibt keine Datenbank i n Unit Tests, nur in Integrationstests. Alles in Komponententests verwendet Spott, da es keine aktive Spring, Hibernate, Datenbank, Plugins usw. gibt. Die Persistenz sollte immer gegen eine Datenbank getestet werden, selbst wenn es nur die speicherinterne HSQL- oder H2-Datenbank oder eine dev-Version von MySQL ist. Postgres/Oracle/etc. Datenbank.