「GrailsinAction」を進めていますが、サービスの1つで統合テストを作成しようとすると、問題が発生します。
この本はGrails1.xxを念頭に置いて書かれているのに対し、私はGrails2.0.3を使用していることに気付きました。
これが私のサービスです:
package qotd
クラスQuoteService{
boolean transactional = true
def getRandomQuote(){
def allQuotes = Quote.list()
def randomQuote
if(allQuotes.size() > 0){
def randomIndex = new Random().nextInt(allQuotes.size())
randomQuote = allQuotes[randomIndex]
}
else{
randomQuote = getStaticQuote()
}
return randomQuote
}
def getStaticQuote(){
return new Quote(author: "Anonymous",
content: "Real Programmers Don't eat quiche")
}
}
そして、以下は私の統合テストで、「/ test / Integration /qotd/」にあります。
package qotd
staticorg.junit.Assert。*をインポートします
org.junit。*をインポートします
クラスQuoteServiceIntegrationTestsはGroovyTestCaseを拡張します{
def quoteService
@Before
void setUp() {
}
@After
void tearDown() {
}
@Test
void testStaticQuote() {
def staticQuote = quoteService.getStaticQuote()
assertNotNull quoteService
assertEquals "Ananymous",staticQuote.author
assertEquals "Real Programmers Don't Eat Quiche",staticQuote.content
}
}
関連する場合に備えて、上記の内容をテストしているQuoteクラスを次に示します。
パッケージqotd
クラス見積もり{
String content
String author
Date created = new Date()
static constraints = {
author(blank:false)
content(maxSize:1000,blank:false)
}
}
'test-app -integration'を使用してテストを実行すると、次のようになります。
1つの統合テストを実行しています...
1/1失敗:testStaticQuote(qotd.QuoteServiceIntegrationTests)
org.junit.ComparisonFailure:期待される:An [a] nymousでしたが
、org.junit.Assert.assertEquals(Assert。 java:125)
at org.junit.Assert.assertEquals(Assert.java:147)
at qotd.QuoteServiceIntegrationTests.testStaticQuote(QuoteServiceIntegrationTests.groovy:24)
任意の洞察をいただければ幸いです。皆さん、ありがとうございました!