2013-04-23 61 views
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()

回答

0

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

1

我认为这两种类型都是有益的。当独立编写测试时,测试可以更加细化,每个测试都有趣的正常和边缘情况等等。但是,通过集成测试证明读者可以读取作者写的内容总是很好的。当输出格式改变(并且总是这样)以确保读取器和写入器都被更新时,这是特别有用的。

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

0

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

但我只是在报告一种常见的做法 - 个人而言,我对这个主题没有强烈的意见。