我有一个带有返回XML的方法的类。与此同时,我有一个Spock单元测试。测试工作正常,即如果我做test-app:unit TestSpec。
然而它会抛出错误 -
Cannot cast object 'com.mypackage.SequencePartResponse@518a824' with class 'com.mypackage.SequencePartResponse' to class 'grails.converters.XML'
当我运行所有测试时(test-app:unit)。我在stackOverflow(12098289)上发现了一个类似的问题,它建议使用'addConvertors(offendingClassName)'来解决这个问题,但这不适用于Spock。它只是抛出一个找不到错误的方法。
任何想法如何排序?
答案 0 :(得分:0)
我找到了一种让它工作的方法..而不是在我的控制器中呈现为XML - "将someObject渲染为XML" ,我做"渲染新的XML(someObject)" ..虽然如果有人能解释我正在做什么,我会很感激
答案 1 :(得分:0)
我不确定这是否会对你有所帮助,但这是值得注意的一点。
假设你有一个ClassA类,它里面有ClassB对象。
ClassA{
ClassB obj;
String val;
}
如果你试图通过使用Lazy抓取来获取类A的对象,那么转换器也会尝试转换ClassB的对象,但由于LAZY获取它没有任何ClassB的东西,它将无法正确转换对象并抛出此错误。
它会尝试将其转换为以下
{
obj : {//It will not find this and throw an exception},
val : ""
}
因此,请尝试使用EAGER提取类型来获取对象。
希望它可能有所帮助,如果你正在做这样的事情。