Hi, thanks for the explanations, but I'm still having a problem.
For example, here is my domain class:
class AccessibleItem {
static mapping =
{
table 'AccessibleItem'
// version is set to false, because this isn't available by default for legacy databases
version false
id generator:'identity', column:'id'
referencedItemClass column:'referencedItemClass'
referencedItem column:'referencedItem'
}
Long id
String referencedItemClass
Long referencedItem
static constraints =
{
id()
referencedItemClass(size: 1..100, blank: false)
referencedItem(max: 9999999999L)
}
String toString() {
return "$
{referencedItem}
"
}
}
I populated the params like this:
def populateValidParams(params)
{
assert params != null
params["referencedItemClass"] = 'Carrier'
params["referencedItem"] = '2'
}
And here is my testEdit method (as an example):
void testEdit()
{
controller.edit()
assert flash.message != null
assert response.redirectedUrl == '/accessibleItem/list'
populateValidParams(params)
def accessibleItem = new AccessibleItem(params)
assert accessibleItem.save() != null
params.id = accessibleItem.id
def model = controller.edit()
assert model.accessibleItemInstance == accessibleItem
}
I still get the following error :
| Failure: testEdit(my.app.AccessibleItemControllerTests) |
java.lang.NullPointerException
at com.sun.beans.TypeResolver.resolve(TypeResolver.java:321)
at com.sun.beans.TypeResolver.resolve(TypeResolver.java:351)
at com.sun.beans.TypeResolver.resolve(TypeResolver.java:310)
at com.sun.beans.TypeResolver.resolve(TypeResolver.java:157)
at com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:78)
at java.beans.FeatureDescriptor.getReturnType(FeatureDescriptor.java:370)
at java.beans.Introspector.getTargetEventInfo(Introspector.java:974)
at java.beans.Introspector.getBeanInfo(Introspector.java:434)
at java.beans.Introspector.getBeanInfo(Introspector.java:174)
at grails.test.mixin.web.ControllerUnitTestMixin.mockController(ControllerUnitTestMixin.groovy:268) |
And not only for Edit, but also for the List, Create, Delete, Index, Update, Show, Save tests. Not any test passes in fact.
I don't know what I'm doing wrong...
Any help would be really appreciated.
I didn't modified anything except populating the params.
Thanks for your help.
Wayne,
Did you fill in valid request parameter values in the ThingControllerTests.poppulateValidParams(params) method and add invalid request parameter values in the testUpdate() method under the comment "//TODO: add invalid values to params object"?
If you do those things, the tests should pass. If you have done those things and the test still fails, please attach a demonstrative sample app.
Thanks for the help.