MetaClass kullanarak geçersiz kılma yöntemlerini sınamak için bu basit kodu yazmaya çalıştım. Groovy metaClass, yapıcıda çağrılan yöntemi geçersiz kıldığında başarısız olur?
kod
burada:class Hello {
public Hello()
{
Foo()
}
public void Foo()
{
println "old"
}
}
Bu sadece "eski" yazdıran bir Foo() yöntemini vardır ve yapıcı çağrısı üzerine yapılacak. Ben Foo()
overriden beri çıkış "yeni" olması gerektiğini bekliyordum
class HelloTest {
@Test
public void test() {
boolean methodFooWasCalled = false
Hello.metaClass.Foo = {-> println "new"
methodFooWasCalled = true
}
Hello hello = new Hello()
assertTrue methodFooWasCalled == true
}
}
:
İşte test kodu var. Ama hala "eski" basılmış. Neden başarısız olduğunu bilen var mı? Teşekkür
Evet, bir hata gibi görünüyor. Bir JIRA meselesi yaptım. Cevabınız için teşekkür ederim! – danielZ
Aynı sorun var, constructor denir init() yöntemini değiştirmeye çalışıyorum. Bana JIRA sorununa işaret edebilir misiniz? Thx –
https://issues.apache.org/jira/browse/GROOVY-7209 – mhsmith