Mam dwie testy w mojej grupie testowej. Jeden używa go, drugi używa testu i wydaje się, że działają one bardzo podobnie. Jaka jest różnica między nimi?
describe('updateAll', () => {
it('no force', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"})
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(updatedItems.length);
})
});
test('force update', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"}, true)
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(0);
})
});
});
AKTUALIZACJA:
Wygląda na test
to, że jest w oficjalnym interfejsie API Jest , ale go it
nie ma.
javascript
unit-testing
jestjs
C.Lee
źródło
źródło
it
może być tam tylko dla znajomości i migracji z innych frameworków.test
jest pod pseudonimemit
.Odpowiedzi:
W dokumentacji napisano tutaj :
it
jest pseudonimemtest
. Więc są dokładnie takie same.źródło
Robią to samo, ale ich nazwy są różne, a tym samym ich interakcja z nazwą testu.
test
Co piszesz:
Co otrzymasz, jeśli coś zawiedzie:
to
Co piszesz:
Co otrzymasz, jeśli coś zawiedzie:
Chodzi więc o czytelność, a nie o funkcjonalność. Moim zdaniem
it
naprawdę ma sens odczytanie wyniku nieudanego testu, którego sam nie napisałeś. Pomaga szybciej zrozumieć, o co chodzi w teście.źródło
it('does this thing', () => {})
niżit('should do this thing', () => {}
krótszytest('thing should do x')
może być preferowany,it('Should do X')
ponieważit
jest to często niejasne.Jak wyjaśniły inne odpowiedzi, robią to samo.
Uważam, że oba są oferowane, aby pozwolić na 1) testy w stylu „ RSpec ”, takie jak:
lub 2) testy stylu „ xUnit ”, takie jak:
Dokumenty:
źródło
jak mówi dokument jest, są takie same: https://jestjs.io/docs/en/api#testname-fn-timeout
i opisz to tylko wtedy, gdy wolisz, aby twoje testy były zorganizowane w grupy: https://jestjs.io/docs/en/api#describename-fn
describe(name, fn)
tworzy blok, który grupuje kilka powiązanych testów. Na przykład, jeśli masz obiekt myBeverage, który powinien być pyszny, ale nie kwaśny, możesz go przetestować za pomocą:Nie jest to wymagane - możesz pisać bloki testowe bezpośrednio na najwyższym poziomie. Może to być jednak przydatne, jeśli wolisz, aby testy były zorganizowane w grupy.
źródło
Nie wspomniałem, dlaczego mają dwie wersje o dokładnie takiej samej funkcjonalności. Domyślam się, że to tylko na konwencji. test dla testów jednostkowych dla testów integracyjnych.
źródło
To są te same rzeczy. Używam TypeScript jako języka programowania, a gdy patrzę na plik definicji z kodu źródłowego pakietu jest z /@types/jest/index.d.ts, widzę następujące kody. Oczywiście istnieje wiele różnych nazw „testów”, możesz użyć dowolnej z nich.
źródło
it
itest
są tym samym. Oznacza to po prostu, że ich typ jest taki sam. Nie sądzębeforeAll
iafterAll
są takie same, mimo że ich typ jest taki sam.xit and xtest
pomija testy,it, fit, test
wykonuje testy. Dziękuję za odpowiedź.