java入门编程向求助
/**
* check the player is alive.
*
* @return if player is dead, return false. Else alive.
*/
public boolean isAlive(){
if(kill())
{
return false;
} else{
return true;
}
}
/**
* check the player is dead.
*
* @return true.
*/
public boolean kill(){
return true;
}
unit test:
public void testIsAlive()
{
assertTrue(player.isAlive());
}
public void testKill()
{
player.kill();
assertFalse(player.isAlive());
}
test后testIsAlive不能通过啊。。。这什么情况啊
逻辑上感觉没问题啊 isAlive会先执行kill(),
kill() return true;
当然isAlive return false;
你assertTrue当然通不过 因为player.isAlive()会一直是false
private boolean alive = true;
/**
* check the player is alive.
*
* @return if player is dead, return false. Else alive.
*/
public boolean isAlive(){
return alive;
}
/**
* check the player is dead.
*
*
*/
public void kill(){
alive = false;
}
这样虽然通过了,但这样真的可以吗? kill弄成kill(Player player)
通过player的setAlive方法把他弄死
然后用player.isAlive检验
页:
[1]