我有一个简单的域类
public void run() {
while (!answerReady)
Thread.sleep(100);
System.out.println("The meaning of life is: " + answer);
}
我有一个简单的集成测试来理解groovy的元方法。我只是替换了save方法,并期望它在集成测试中失败。然后,我断言没有cat记录保存在数据库中。
package cat
class Cat {
String name
static constraints = {
}
}
我在此行获得错误assertEquals Cat.count(),0
class CatTests extends GroovyTestCase{
CatController controller = new CatController()
@Test
void testSomething() {
Cat.metaClass.save = {
throw new Exception("Asdasd")
}
shouldFail(Exception){
Cat cat = new Cat(name: "asd")
cat.save()
}
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
assertEquals Cat.count(), 0
}
}
为什么抱怨Cat不再有计数方法?我感谢任何帮助!谢谢!
答案 0 :(得分:0)
确定改变这两个语句的顺序解决了这个问题。
assertEquals Cat.count(), 0
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
仍然不确定为什么。