0

我正在学习如何对我的一些 php 代码执行正确的单元测试/测试用例。我有一个简单的功能atMaxLivesAllowed(),我在atMaxLivesAllowedTest()下面测试。但我不知道如何传递一个值getLivesLeftCount()来比较max_lives_limit。我怎样才能正确地做到这一点?任何想法我可以为该功能执行哪些其他测试atMaxLivesAllowed()

public function getLivesCount(){

    $lives = new Life();
    $lives->player = $this->id;
    $lives->lives_left = '1';
    $lives->lives_used = '0';
    return $player->count();

}

public function atMaxLivesAllowed(){

    return $this->getLivesLeftCount() >= $this->max_lives_limit;
}

/*
 * Tests the expected behavior of atMaxLivesAllowed
 *
 */
public function atMaxLivesAllowedTest(){

    $player->getLivesLeftCount(1);
    $player->max_lives_limit=5;

    $this->asertTrue($player->atMaxLivesAllowed());
}
4

1 回答 1

1

假设你的实现是正确的并且你得到了预期的行为,我认为这个测试没有太大的错误,除了有一点拼写错误assert

它应该是:

$this->assertTrue($player->atMaxLivesAllowed());

另一方面,在进行 TDD 时,您首先编写测试,一开始很棘手,但值得努力,因为它迫使您考虑程序的不同部分将如何交互,也就是说,它迫使您想想确实非常好的接口(公共方法)。

我在您的代码中注意到的另一件事是您存储了lives_left并且lives_usedstrings应该存储integers吗?

于 2013-07-07T21:36:57.907 回答