繁体   English   中英

Grails Spock单元测试不一致

[英]Grails spock unit testing not consistent

我有一个带有返回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。 它只是抛出一个方法未找到错误。

任何人有任何想法如何排序?

好吧,我找到了一种使它工作的方法..而不是在我的控制器中以XML形式呈现-“将someObject呈现为XML”,而是“呈现新的XML(someObject)” ..尽管有人可以解释发生了什么,我还是欣赏它

我不确定这是否对您有帮助,但这是一个值得注意的点。

假设您有一个ClassA类,并且其中包含ClassB对象。

ClassA{
 ClassB obj;
 String val;

}

而且,如果您尝试通过使用延迟获取来获取类A的对象,则转换器也会尝试转换ClassB的对象,但是由于LAZY的获取,ClassB没有任何对象,因此它将无法转换ClassB的对象。对象正确并引发此错误。

它将尝试如下转换

{
   obj : {//It will not find this and throw an exception},
   val :  "" 
}

因此,请尝试使用EAGER提取类型来提取您的对象。

如果您正在做这样的事情,希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM