1

我是单元测试和 TDD 的新手。我明白它的重要性,所以我想开始学习它。问题是我在 TDD 中看不到全貌。我的意思是,当我刚开始一个项目时,我该怎么做?我已经玩过一些测试,测试一种方法或其他东西,但是我该如何在更大的范围内进行,比如整个项目?

所以拜托,有人可以写下要点或我该如何开始吗?

我是否测试每个类并为每个方法编写测试,以及如何将我的应用程序作为一个整体进行测试,等等。

4

1 回答 1

1

我是否测试每个类并为每个方法编写测试,以及如何将我的应用程序测试为一个漏洞,等等。

基本上,在一个完美的世界里,是的。您甚至可以为每个方法编写多个测试。测试驱动意味着,您开始编写测试,然后开始开发并使测试通过。

例子:

您正在编写一个配置文件类并希望开始使用测试驱动开发。因此,您将在实现之前开始编写测试:

class ConfigFileTest extends PHPUnit_Framework_TestCase {


    public function testOpen() {
        $config = new ConfigFile(); // 1 .test will fail because the class doesn't exists
        // -> solution write the class
        $this->assertTrue($config->open('test.config')); // 2. test will fail because open isn't implemented yet
        // -> solution: implement open()..

        // and so on ...
    }

}

正如您所看到的,测试可能会指导您完成实现,并且作为一个特殊的好处,它在实现后将保持有用,因为您可以使用测试来检查类是否按预期工作,即使在以后更改代码后也是如此。


不过我应该告诉你behat。它遵循一种名为“行为驱动开发”的不同测试方法。你应该看看。

于 2013-11-13T09:28:18.017 回答