我有一个我想测试的课程:
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 :(得分:1)
我认为两种类型都是有益的。独立编写时,测试可以更精细,每个测试都有趣的正常和边缘情况等等。但是,集成测试验证读者可以读取作者写的内容总是好的。当输出格式发生变化(并且始终如此)以确保读取器和写入器都得到更新时,这尤其有用。
如果您必须支持读取read()
方法不再生成的旧/遗留格式输入,则可能还需要单独测试write()
。
答案 1 :(得分:0)
独立测试最好,或者至少以自下而上的方法测试。您可以使用testRead测试testWrite,只要您已经证明testRead独立于testWrite工作(等等)。
答案 2 :(得分:0)
大型测试用例/套件可能需要一段时间才能执行。因此,通常测试工程师会尽量避免冗余。例如,他们通常避免测试get / set方法,因为它们用于其他测试。
但我只是报告了一个常见的做法 - 就个人而言,我对这个话题没有强烈的看法。