Getting a compilation error while testing integration with the book "Getting Started with Grails"

I read the book Getting Started with the Grail and hit the wall using chapter 4 (Test) on page 38 (current page 50). Here is the code:

Oh, there might be a typo in the code in the book, although this did not affect the behavior or error messages I received on the following line:

def code = badField?.codes.find { 
   it == 'race.startDate.validator.invalid'
}

As I said, this does not affect the main execution, but it was just curious if I was right, or if this is something in Groovy, I have not yet encountered. I set what I thought should be lower.

package racetrack

import groovy.util.GroovyTestCase


class RaceIntegrationTests extends GroovyTestCase { 

    void testRaceDatesBeforeToday() {
    def lastWeek = new Date() - 7 
    def race = new Race(startDate:lastWeek) 
    assertFalse "Validation should not succeed", race.validate() 
    // It should have errors after validation fails 
    assertTrue "There should be errors", race.hasErrors()

    println "\nErrors:" 
    println race.errors ?: "no errors found"

    def badField = race.errors.getFieldError('startDate') 
    println "\nBadField:" 
    println badField ?: "startDate wasn't a bad field" 
    assertNotNull "Expecting to find an error on the startDate field", badField

    def code = badField ?: codes.find { 
        it == 'race.startDate.validator.invalid'
    } 
    println "\nCode:" 
    println code ?:"the custom validator for startDate wasn't found" 
    assertNotNull "startDate field should be the culprit", code
    }
}

where, when I run "grails test-app", I get the following:

Error executing script TestApp: java.lang.RuntimeException: Could not load class in test type 'integration'
java.lang.RuntimeException: Could not load class in test type 'integration'
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:391)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Caused by: java.lang.RuntimeException: Could not load class in test type 'integration'
at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:261)
at _GrailsTest_groovy$_run_closure4.call(_GrailsTest_groovy)
at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:228)
at _GrailsTest_groovy$_run_closure1_closure21.doCall(_GrailsTest_groovy:187)
at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:174)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
... 10 more

Grails 1.2.x, 1.3.x ( ), - , , Groovy Grails !:-D

- , , ?

+3
5

, , .

, --stacktrace, .

, , ?

+5

( Grails 2.3.4) - ,

import racetrack.Race

package racetrack

, , , , - , . . - 100% grails/ groovy.

+3

Grails 2.4.2. , FooTest, FooTest ** s **.

grails test-app --stacktrace -.

+2

, , , "" . src/test/unit/.... -, validate() 'Grails, Grails , "GrailsUnitTest" "mockDomain (Race ) ' unit test. , , , , , . - " ", ...

class RaceTests extends GrailsUnitTest {

    void testRaceDatesBeforeToday() {
        mockDomain(Race)
        ...
0

make sure your package name is correct, the above error means that it is trying to run the test, but since the package name is incorrect, it cannot find the file with this specific package name.

0
source

All Articles