什么是编程中的装置?

我之前多次听过这个术语(当谈论编程时),但是找不到任何解释是什么意思。 任何好的文章或解释? 我没有发现任何值得一提的东西。

我想你是指testing装置 :

testing夹具的目的是确保有一个众所周知的固定环境,在这个环境中运行testing,以便结果是可重复的。 有些人称这为testing环境。

夹具的例子:

- Loading a database with a specific, known set of data - Erasing a hard disk and installing a known clean operating system installation - Copying a specific known set of files - Preparation of input data and set-up/creation of fake or mock objects 

(来源:维基百科,请参阅上面的链接)

这里还有一些来自“Googletesting”框架文档的实际例子 。

对于这个主题,JUnit有一个很好解释的文档。 这是链接!

文章的相关部分是:

testing需要在已知的一组对象的背景下运行。 这组对象被称为testing夹具。 当你编写testing时,你会经常发现你花更多的时间编写代码来设置fixture,而不是实际testing值。

在某种程度上,您可以通过仔细注意您编写的构造函数来更轻松地编写夹具代码。 但是,共享夹具代码会带来更大的节省。 通常,您可以使用相同的夹具进行多个不同的testing。 每种情况都会发送稍微不同的信息或参数到夹具,并会检查不同的结果。

当你有一个共同的夹具,这是你做什么:

为fixture的每个部分添加一个字段使用@ org.junit.Before注释一个方法,并初始化该方法中的variables使用@ org.junit.After注释一个方法释放在setUp中分配的所有永久资源例如,要写几个想要用12瑞士法郎,14瑞士法郎和28美元的不同组合工作的testing案例,首先创build一个工具:

 public class MoneyTest { private Money f12CHF; private Money f14CHF; private Money f28USD; @Before public void setUp() { f12CHF= new Money(12, "CHF"); f14CHF= new Money(14, "CHF"); f28USD= new Money(28, "USD"); } } 

我认为PHPunit testing对此有非常好的解释:

编写testing中最耗时的部分之一是编写代码,将世界置于已知状态,然后在testing完成时将其返回到原始状态。 这个已知的状态被称为testing的夹具。

另外Yii文件介绍了灯具testing的良好状态:

自动化testing需要执行多次。 为了确保testing过程是可重复的,我们希望在一些已知的状态下运行testing。 例如,为了testing博客应用程序中的后期创buildfunction,每当我们运行testing时,存储关于post的相关数据(例如Post表,Comment表)的表应该被恢复到某个固定状态。

这里是夹具testing的简单例子

 <?php use PHPUnit\Framework\TestCase; class StackTest extends TestCase { protected $stack; protected function setUp() { $this->stack = []; } protected function tearDown() { $this->stack = []; } public function testEmpty() { $this->assertTrue(empty($this->stack)); } public function testPush() { array_push($this->stack, 'foo'); $this->assertEquals('foo', $this->stack[count($this->stack)-1]); $this->assertFalse(empty($this->stack)); } public function testPop() { array_push($this->stack, 'foo'); $this->assertEquals('foo', array_pop($this->stack)); $this->assertTrue(empty($this->stack)); } } ?> 

这个PHPunit testing具有名称setUptearDown ,在运行testing之前,您需要设置您的数据,完成后您可以将它们恢复到初始状态。