0

我有一门课,我想测试:

class DocumentProcessor{

  public function write(){

  }

  public function read(){

  }
}

我有一个简单的测试用例:

class ClientTest extends \PHPUnit_Framework_TestCase
{
    public function testWrite(){

    }

    public function testRead(){

    }
}

在这种情况下,能否testRead()依赖数据testWrite()已写入?testRead()还是设置自己的数据并从中读取是更好的做法?后一种方法似乎有点重复,但可以testRead()自行测试。

4

3 回答 3

1

我认为拥有这两种类型是有益的。独立编写的测试可以更加细粒度,每个测试有趣的正常和边缘情况等。但是,有一个集成测试来验证读者可以阅读作者所写的内容总是好的。当输出格式发生变化时(而且总是如此),这尤其有用,以确保读取器和写入器都得到更新。

如果您必须支持读取该方法不再产生read()的旧/旧格式输入,则可能还需要独立测试。write()

于 2013-04-24T04:39:59.877 回答
0

独立的测试是最好的,或者至少以自下而上的方法进行测试。只要您证明 testRead 独立于 testWrite (等等)工作,您就可以使用 testRead 测试 testWrite。

于 2013-04-23T23:55:25.153 回答
0

一个大的测试用例/套件可能需要时间来执行。出于这个原因,通常测试工程师会尽量避免冗余。例如,他们通常避免测试 get/set 方法,因为它们在其他测试中使用。

但我只是报告一种常见的做法——就个人而言,我对这个话题没有强烈的看法。

于 2013-04-24T16:31:14.583 回答