Question

J'ai développé en Java dans le passé, et maintenant je suis en train d'apprendre Grails / Groovy en utilisant ce tutoriel légèrement défraîchi .

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 ( Remarque: ce TagLibUnitTestCase est pour Grails 1.2.1 et non la version utilisée dans la tutoriel )

Pour une raison quelconque le test ci-dessus échoue avec:

  

prévu: <2010>, mais était: <2010>

J'ai essayé de remplacer le test ci-dessus avec la version alternative suivante du test et le test passe très bien:

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

Ces deux versions du test sont fondamentalement la même chose non?

A moins qu'il ya quelque chose de nouveau dans Grails 1.2.1 ou Groovy que je ne comprends pas. Ils devraient être du même type, car les valeurs sont à la fois la valeur retournée par Calendar.getInstance (). Get (Calendar.YEAR)

Était-ce utile?

La solution

L'objet retourné de dateTagLib.thisYear () ne doit pas être une chaîne.

Essayez

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

Dans votre exemple de travail, Groovy est de convertir .thisYear () à une chaîne pour vous.

Imprimez dateTagLib.thisYear () classe. Pour être sûr.

hourras

Lee

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top