Ho sentito questo termine molte volte prima (quando parlo di programmazione) ma non ho trovato alcuna spiegazione che cosa significhi. Qualche buon articolo o spiegazione? Non ho trovato nulla degno di menzione.Cosa sono gli infissi nella programmazione?
risposta
penso ti riferisci test fixtures:
Lo scopo di un dispositivo di prova è quello di garantire che non v'è un ben noto e fissato ambiente in cui i test vengono eseguiti in modo che i risultati sono ripetibili. Alcune persone chiamano questo il contesto del test.
Esempi di infissi:
- 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
(Fonte: Wikipedia, vedi link qui sotto)
Ecco anche alcune practical examples from the documentation of the 'Google Test' framework.
Esattamente a questo argomento, JUnit ha un documento ben spiegato. Here è il link!
La porzione relativa di questo articolo è:
test devono eseguire nel contesto di una serie nota di oggetti. Questo insieme di oggetti è chiamato un dispositivo di prova. Quando si scrivono i test, si scoprirà spesso che si impiegano più tempo a scrivere il codice per impostare il dispositivo piuttosto che a verificare effettivamente i valori.
In una certa misura, è possibile rendere più semplice la scrittura del codice di installazione prestando particolare attenzione ai costruttori che si scrivono. Tuttavia, un risparmio molto maggiore deriva dalla condivisione del codice del dispositivo. Spesso, sarete in grado di utilizzare lo stesso apparecchio per diversi test. Ogni caso invierà messaggi o parametri leggermente diversi all'apparecchio e controllerà i risultati differenti.
Quando si dispone di un apparecchio comune, ecco cosa dovete fare:
Aggiungi un campo per ogni parte del dispositivo Annota un metodo con @ org.junit.Before e inizializzare le variabili in quel metodo Annota un metodo con @ org.junit.After per rilasciare eventuali risorse permanenti assegnate in setUp Ad esempio, per scrivere diversi casi di test che desiderano lavorare con diverse combinazioni di 12 franchi svizzeri, 14 franchi svizzeri e 28 dollari USA, creare prima un appuntamento:
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");
}
}
Penso test PHP-unit hanno molto buona spiegazione di questo:
Una delle parti più in termini di tempo di test di scrittura è la scrittura del codice per impostare il mondo in uno stato noto e poi restituirlo allo stato originale al termine del test. Questo stato noto è chiamato l'apparecchio del test.
anche documenti Yii descritto test di infissi in una buona forma:
test automatici devono essere eseguite molte volte.Per garantire che il test del processo sia ripetibile, vorremmo eseguire i test in uno stato noto denominato chiamato fixture. Ad esempio, per testare la funzione di creazione post in un'applicazione blog, ogni volta che eseguiamo i test, le tabelle che memorizzano i dati rilevanti sui post (ad esempio la tabella Post, la tabella Commento ) devono essere ripristinate su un determinato stato.
Qui il semplice esempio di test di infissi
<?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));
}
}
?>
Questo PHP di prova unità dispone di funzioni con nomi setUp
e tearDown
che prima di eseguire il test si imposta i dati e finito è possibile ripristinarli a quella iniziale stato.