2012-08-22 16 views

Odpowiedz

94

Chyba masz na myśli test fixtures:

Celem stanowisku badawczym jest zapewnienie, że nie jest dobrze znany i stałe środowisko, w którym badania są prowadzone tak, że wyniki są powtarzalne. Niektórzy nazywają to kontekstem testu.

Przykłady opraw:

- 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 

(źródło: Wikipedia, patrz link powyżej)

Oto również niektóre practical examples from the documentation of the 'Google Test' framework.

2

Dokładnie do tego tematu, JUnit ma dobrze wytłumaczony dokument. Here to link!

odpowiednią część artykułu jest:

Testy trzeba uruchomić na tle znanego zbioru obiektów. Ten zestaw obiektów nazywany jest urządzeniem testowym. Podczas pisania testów często odkrywasz, że poświęcasz więcej czasu na pisanie kodu, aby ustawić urządzenie, niż w przypadku testowania wartości.

W pewnym stopniu możesz ułatwić pisanie kodu urządzenia, zwracając szczególną uwagę na konstruktorów, których piszesz. Jednak znacznie większe oszczędności wynikają z dzielenia się kodem urządzeń. Często będziesz mógł użyć tego samego urządzenia do kilku różnych testów. Każdy przypadek wyśle ​​nieco inne wiadomości lub parametry do urządzenia i sprawdzi różne wyniki.

Kiedy mają wspólne urządzenie, oto co trzeba zrobić:

Dodawanie pola dla każdej części osprzętu Adnotuj metodę z @ org.junit.Before i inicjalizacja zmiennych w ten sposób Adnotuj metoda z @ org.junit. Po zwolnieniu wszelkich stałych zasobów przydzielonych w setUp Na przykład, aby napisać kilka przypadków testowych, które chcą pracować z różnymi kombinacjami 12 franków szwajcarskich, 14 franków szwajcarskich i 28 dolarów amerykańskich, najpierw utwórz urządzenie:

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"); 
    } 
} 
4

myślę Testy PHP-unit mają bardzo dobre wyjaśnienia tego:

Jednym z większości części czasochłonnych testów pisania jest pisanie kodu ustawić świat w znanym stanie, a następnie odesłać go do oryginalnego stanu po zakończeniu testu. Ten znany stan nosi nazwę dla urządzenia testowego.

także dokumenty Yii opisanego testu urządzeń w dobrym stanie:

zautomatyzowanych testów muszą być wykonywane wielokrotnie.Aby zapewnić powtarzalność procesu testowania, chcielibyśmy przeprowadzić testy w pewnym znanym stanie zwanym urządzeniem. Na przykład, aby przetestować funkcję tworzenia postów w aplikacji blogowej, za każdym razem, gdy przeprowadzamy testy, tabele przechowujące odpowiednie dane na temat wpisów (np. Tabela Post, tabela komentarzy ) powinny zostać przywrócone do pewnego stanu stałego.

Oto prosty przykład testu lamp

testów jednostkowych
<?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)); 
    } 
} 
?> 

Ten PHP ma funkcje o nazwach setUp i tearDown że przed uruchomieniem test ci konfigurację danych i na zakończeniu można je przywrócić do początkowego stan.