-4

「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)


任意の洞察をいただければ幸いです。皆さん、ありがとうございました!

4

1 に答える 1

3

この行の「匿名」のスペルが間違っています

assertEquals "Ananymous",staticQuote.author

于 2012-05-03T13:22:18.730 に答える