2015-07-07 9 views
6

Jestem zdezorientowany, więc jeśli używam SuperTest, który wygląda na to, że ma swoje oczekiwane twierdzenie, to nie muszę się martwić o używanie Chai? Albo kiedy wymagam Chai, Supertest wie o tym i używa go jako mechanizmu oczekiwań?Oczekiwania SuperTest vs. Chai.expect

+0

Nie rozumiem, o co tu chodzi? Czy chcesz zrozumieć wewnętrzne działanie ram testowych i bibliotek asercji? – Clarkie

+0

Gdy użyjesz SuperTest do złożenia wniosku i zaczniesz potwierdzać używając "oczekuj" Zakładam, że ponieważ zdefiniowałem oczekiwanie przez bibliotekę asercji Chai, że jest to biblioteka, której używa. Innymi słowy SuperTest nie ma własnej biblioteki asercji, prawda? Trzeba powiedzieć to co biblioteka poprzez utworzenie zmiennej spodziewać, jak to zrobić w Mocha a następnie SuperTest jest w stanie podjąć się wykorzystania tej zmiennej jakoś dołączyć go do końca, że ​​to żądanie wywołania funkcji – PositiveGuy

+0

hmm tylko spojrzał na docs SuperTest znowu i mówi, że używa funkcji "oczekiwać" SuperAgent, ponieważ wygląda na to, że "asercje HTTP są łatwe dzięki super-agentowi". Ale potem mówi również, że "SuperTest działa z każdą strukturą testową, tutaj jest przykład bez użycia jakiejkolwiek struktury testowej:" więc jestem zdezorientowany. – PositiveGuy

Odpowiedz

10

SuperTest rozszerza obiekt SuperAgent o request w celu włączenia funkcji expect. Nie działa tak jak asercja Chai o numerze expect, ale może być użyty do potwierdzenia stanu odpowiedzi HTTP i nagłówków i może być mieszany z Chai's expect.

request(app). 
get('/'). 
expect(200). // request.expect, is status code 200? 
expect('Content-Type', /json/). // request.expect, does content-type match regex /json/? 
expect(function(res){ // request.expect, does this user-provided function throw? 
    // user-provided function can include Chai assertions 
    expect(res.body).to.exist; 
    expect(res.body).to.have.property('status'); 
}). 
end(done); 
+0

thx. Zastanawiam się, w jakiej sytuacji chciałbyś w teście BDD potwierdzić, używając "oczekiwań" SuperTestu, a potem zaraz po użyciu "oczekuj" od Chai. Chodzi mi o to, że kiedy czegoś się spodziewasz i to prawda, twój test BDD mija ... Po prostu nie widzę potrzeby, aby Chai spodziewał się, że podczas testowania prośby/odpowiedzi integracji w twoim BDD lub innych testach integracyjnych ... – PositiveGuy

Powiązane problemy