2011-10-06 85 views
1

我有以下结构:如何一步一个条件,如果在Eclipse中调试

if (obj.isSomethingable()){ 
// do something } 

我怎样才能进入条件,如果obj.isSomethingable()是假的,我不能修改Boolean实例obj?

+2

这对我没什么意义......为什么你要调试不应该在当前上下文中执行的代码? –

+0

我想看看如果它被执行会发生什么。如果我使用boolean bol = obj.isSomethingable(),那么我可以将bol设置为true并输入条件。但我想要一种方式来输入它,而不修改代码 –

+1

你能改变你创建这个对象的方式吗?重写方法的子类可用于测试。 –

回答

0

看起来像这样做的唯一方法就是修改源代码。

boolean bol = obj.isSomethingable(); 
if (bol) { ... } 

之后,您可以将布尔值从变量更改为true。

4

你可以使用eclipse的Display选项卡执行代码//在做某些事情。

所以,如果您有:

if(obj.isSomethingable()) 
{ 
    int var =5; 
    System.out.println(var+8); 
} 

然后同时在显示选项卡中,如果断点,你可以把:

int var =5; 
System.out.println(var+8); 

然后突出显示这一切,并单击放大镜看什么该代码的输出将是。

+0

我有一个'返回true'那里。执行,没有任何效果 –

+0

@HoratiuJeflea,这使得你的问题更不明智... –

+0

它使很多道理,相信我。 –

0

在执行if之前,请使用调试器更改obj的状态,使isSomethingable()返回true。

1

Salut,

在Debug透视图中,打开“变量”选项卡。你可以选择你的对象并改变它的值。这将适用于基元或简单对象,但不适用于复杂对象。 我已经试过如下:

return new MyObj() { 
    public boolean isSomething() { 
     return true; 
    } 
}; 

但是Eclipse将不会允许您使用annonymous类。 你可以尝试一下模拟或其他东西。谷歌mockito,看看它是否可以为你工作。

Tiberiu