Domanda

ho sviluppato in Java, in passato, e ora sto cercando di imparare Grails / Groovy utilizzando questo leggermente datato esercitazione .

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
( Nota: questo TagLibUnitTestCase è per Grails 1.2.1 e non la versione utilizzati nel esercitazione )

Per qualche ragione la prova di cui sopra non riesce con:

  

atteso: <2010>, ma era: <2010>

Ho provato a sostituire la prova di cui sopra con la seguente versione alternativa del test e il test viene superato bene:

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

Queste due versioni del test sono fondamentalmente la stessa cosa giusta?

A meno che non ci sia qualcosa di nuovo in Grails 1.2.1 o Groovy che non sto capendo. Essi dovrebbero essere dello stesso tipo perché i valori sono sia il valore restituito da Calendar.getInstance (). Get (Calendar.YEAR)

È stato utile?

Soluzione

L'oggetto restituito da dateTagLib.thisYear () non deve essere una stringa.

Prova

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

Nel tuo esempio di lavoro, Groovy è la conversione .thisYear () per una stringa per voi.

Stampare dateTagLib.thisYear (). Classe per essere sicuri.

applausi

Lee

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top