2011-09-08 59 views
2

我试图通过JMockit模拟带有方法注释的类,并发现没有方法注释可以通过反射获取。字段注释以intendet工作。我想念什么?如何在JMockit模拟实例中保留方法注释

嘲讽:

@Test 
public void testThatSetterInjectionIsBombedProperlyOnNonAssignability(@Mocked final WithInjectableMethods injectable, 
                     @Mocked final TextView textView, 
                     @Mocked final Button button) { 

类问题:

class WithInjectableMethods extends Activity { 

    private android.view.View asView; 

    private Button button; 

    // shall be left alone 
    private View notInjected = null; 
    // shall be injected 


    @InjectView(id = 239) 
    private void setAsView(View asView) { 
     this.asView = asView; 
    } 

    @InjectView(id = 555) 
    public void setButton(Button button) { 
     this.button = button; 
    } 

    public void setNotInjected(View notInjected) { 
     this.notInjected = notInjected; 
    } 
+0

发行已结束。我可以通过从模拟中排除有问题的方法来解决问题(请参阅问题评论):下一版本正在解决问题:http://code.google.com/p/jmockit/issues/detail?id=184 –

回答

2

我能解决:

@Mocked(methods = {"setAsView", "setButton", "notInjected"}, inverse = true) final WithInjectableMethods injectable, 

我也jmockit开始发行,这是acepted和修复在下一个版本中有所突破:

http://code.google.com/p/jmockit/issues/detail?id=184