2010-03-30 11 views
1

나는 과거에 자바로 개발 해왔고 이제는 this slightly dated tutorial을 사용하여 Grails/Groovy를 배우려고합니다.Grails Unit Tests : 왜이 ​​문장은 실패합니까?

import grails.test.* 

class DateTagLibTests extends TagLibUnitTestCase { 

    def dateTagLib 

    protected void setUp() { 
     super.setUp() 
     dateTagLib = new DateTagLib() 
    } 

    protected void tearDown() { 
     super.tearDown() 
    } 

    void testThisYear() { 
     String expected = Calendar.getInstance().get(Calendar.YEAR) 

     // NOTE: This statement fails 
     assertEquals("the years dont match and I dont know why.", expected, dateTagLib.thisYear()) 

    } 
} 

DateTagLibTests.groovy
(참고이 TagLibUnitTestCase는 tutorial에 사용 Grails의 1.2.1 아닌 버전이다) 상기 시험이 실패 어떤 이유로

:

예상 : < 2010>은 : < 2010>

나는 시험의 다음과 같은 대체 버전 위의 테스트를 교체 해봤 및 테스트가 잘 전달합니다

void testThisYear() { 
    String expected = Calendar.getInstance().get(Calendar.YEAR) 
    String actual = dateTagLib.thisYear() 

    // NOTE: The following two assertions work: 
    assertEquals("the years don\'t match", expected, actual) 
    assertTrue("the years don\'t match", expected.equals(actual)) 
} 

시험이 두 버전

은 기본적으로 동일 바로 그거야?

Grails 1.2.1 또는 Groovy에 새로운 기능이없는 한 제가 이해가되지 않는 한. 값이 Calendar.getInstance에 의해 반환 된 두 값 때문에 그들은 동일한 유형이어야합니다(). 문자열이 아니어야합니다) (

+0

내 나쁜 중복! – leeand00

+0

@Victor 예, 저는 그 베타에 매우 흥미가 있습니다! 하지만 두려워요. – leeand00

+1

예, 오늘은 12 시간도되지 않아서 시작되었습니다. 당신은 일종의 기차를 놓쳤다. 그러나 걱정하지 마라, 그것은 7 일 만에 공개 베타에 들어갈 것이다 :) – greatwolf

답변

2

목적은 dateTagLib.thisYear에서 반환 (로서 Calendar.YEAR)을 얻는다.

는 그루비 당신을 위해 문자열로 .thisYear()로 변환되어 사용자의 작업 예에서

assertEquals("the years dont match and I dont know why.", expected, dateTagLib.thisYear().toString()) 

을보십시오.

dateTagLib.thisYear() 클래스를 인쇄하십시오.

환호

+0

Thanks Lee (이 질문은 정확한 복제품이 아니다. .. 그러나 그것은 닫힌다. :-D) – leeand00

관련 문제