-4

我正在通过“Grails in Action”工作,并且在尝试为我的一项服务编写集成测试时遇到了问题。

我意识到我使用的是 Grails 2.0.3,而这本书是在考虑 Grails 1.xx 的情况下编写的。

这是我的服务:

package qotd

类报价服务{

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

导入静态 org.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 类:

包 qtd

类报价{

String content
String author
Date created = new Date()

static constraints = {

    author(blank:false)
    content(maxSize:1000,blank:false)

}

}

当我运行测试时,使用“test-app -integration”我得到以下信息:


运行 1 个集成测试... 1 of 1
失败:testStaticQuote(qotd.QuoteServiceIntegrationTests)
org.junit.ComparisonFailure:预期:An[a]nymous 但
在 org.junit.Assert.assertEquals(Assert. java:125)
在 org.junit.Assert.assertEquals(Assert.java:147)
在 qotd.QuoteServiceIntegrationTests.testStaticQuote(QuoteServiceIntegrationTests.groovy:24)


任何见解将不胜感激。谢谢你们!

4

1 回答 1

3

你在这一行拼错了“匿名”

assertEquals "Ananymous",staticQuote.author

于 2012-05-03T13:22:18.730 回答