Grails 中的测试服务产生 'org.junit.ComparisonFailure: expected:<An[a]nymous> but was:<An[o]nymous&g

Posted

技术标签:

【中文标题】Grails 中的测试服务产生 \'org.junit.ComparisonFailure: expected:<An[a]nymous> but was:<An[o]nymous>\' 错误【英文标题】:Testing Service in Grails produces 'org.junit.ComparisonFailure: expected:<An[a]nymous> but was:<An[o]nymous>' errorGrails 中的测试服务产生 'org.junit.ComparisonFailure: expected:<An[a]nymous> but was:<An[o]nymous>' 错误 【发布时间】:2012-05-13 00:30:46 【问题描述】:

我正在研究“Grails in Action”,但在尝试为我的一项服务编写集成测试时遇到了问题。

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

这是我的服务:

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 类:

包qotd

类引用

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 但原为:An[o]nymous 在 org.junit.Assert.assertEquals(Assert.java:125) 在 org.junit.Assert.assertEquals(Assert.java:147) 在 qotd.QuoteServiceIntegrationTests.testStaticQuote(QuoteServiceIntegrationTests.groovy:24)


任何见解将不胜感激。谢谢大家!

【问题讨论】:

【参考方案1】:

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

assertEquals "Ananymous",staticQuote.author

【讨论】:

你说的完全正确,我在想这是一个错误!谢谢你:)

以上是关于Grails 中的测试服务产生 'org.junit.ComparisonFailure: expected:<An[a]nymous> but was:<An[o]nymous&g的主要内容,如果未能解决你的问题,请参考以下文章

grails Grails 单元测试中的应用程序访问

Grails Connections 在集成测试中的行为非常不同

如何在 Grails 2.0 服务中对 i18n 注入 messageSource 的使用进行单元或集成测试

在 Grails 单元测试中注入服务

如何模拟闭包以测试 Grails 服务结果?

如何使用 Spock 测试 Grails 服务?