У меня есть два теста в моей тестовой группе. Один использует его, другой использует тест, и они, кажется, работают очень похоже. В чем разница между ними?
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);
})
});
});
ОБНОВИТЬ:
Кажется, что test
есть в официальном API Jest , но it
нет.
javascript
unit-testing
jestjs
C.Lee
источник
источник
it
может быть просто для знакомства и миграции из других структур.test
находится под псевдонимомit
.Ответы:
В документах здесь написано :
it
это псевдонимtest
. Так что они точно такие же.источник
Они делают то же самое, но их имена разные, и с этим их взаимодействие с именем теста.
тест
Что ты пишешь:
Что вы получите, если что-то не получится:
Это
Что ты пишешь:
Что вы получите, если что-то не получится:
Так что речь идет о читабельности, а не о функциональности. На мой взгляд,
it
действительно есть смысл читать результат неудачного теста, который вы сами не написали. Это помогает быстрее понять, о чем идет речь.источник
it('does this thing', () => {})
вместоit('should do this thing', () => {}
его более короткогоtest('thing should do x')
может быть более предпочтительным , чем ,it('Should do X')
какit
часто является неопределенным.Как выяснили другие ответы, они делают то же самое.
Я полагаю, что оба предложены для 1) тестов в стиле " RSpec ", таких как:
или 2) тесты стиля " xUnit ", такие как:
Docs:
источник
как говорят шутливые документы, они одинаковы: https://jestjs.io/docs/en/api#testname-fn-timeout
и описывать только для того, когда вы предпочитаете, чтобы ваши тесты были организованы в группы: https://jestjs.io/docs/en/api#describename-fn
describe(name, fn)
создает блок, объединяющий несколько связанных тестов. Например, если у вас есть объект myBeverage, который должен быть вкусным, но не кислым, вы можете проверить его с помощью:Это не обязательно - вы можете написать тестовые блоки непосредственно на верхнем уровне. Но это может быть удобно, если вы предпочитаете, чтобы ваши тесты были организованы в группы.
источник
Джест не упомянул, почему у них есть две версии для одинаковой функциональности. Я думаю, это только для конвенции. тест для юнит-тестов это для интеграционных тестов.
источник
Это одно и то же. Я использую TypeScript в качестве языка программирования, и когда я смотрю на файл определения из исходного кода пакета jest из /@types/jest/index.d.ts, я вижу следующие коды. Очевидно, что существует множество разных имен «тест», вы можете использовать любое из них.
источник
it
иtest
то же. Это просто означает, что их тип одинаков. Я не думаю , чтоbeforeAll
иafterAll
одно и то же , даже если их тип и тот же.xit and xtest
пропускает тесты,it, fit, test
выполняет тесты. Спасибо за Ваш ответ.