有时,在对Grails单元测试进行一些更新时,我会遇到以下错误:
BUG! exception in phase 'instruction selection' in source unit ... unexpected NullpointerException
是什么原因引起的?或者调试此问题的最佳策略是什么?
答案 0 :(得分:6)
到目前为止,我最好的方法是迭代地评论出来,直到代码编译为止。 grails clean
无法解决问题。
使用此过程,我发现问题是我的@TestFor(Class)
注释。我已经将一些代码从服务转移到了src / groovy中的类。这似乎导致注释中断。我真的不明白为什么特别打破了,但这对我来说已经足够了。
因此,如果您的测试类不是服务或控制器或类似的,请尝试删除@TestFor()
注释。
如果这不起作用,请将所有内容评论出来并一次添加一件。
答案 1 :(得分:0)
就我而言,我的服务类没有默认的构造函数。我通过提供默认构造函数As解决了这个问题,@TestFor想要注入服务bean,因为我的服务bean没有无法注入的默认构造函数spring容器。