#reactjs #jestjs #enzyme
#reactjs #jestjs #фермент
Вопрос:
Запуск теста с использованием Jest и Enzyme. В данный момент тест проходит, но некоторые строки были закрыты, когда я запускал тестовое покрытие npm, но последние несколько строк отсутствуют
patchSourceEntity = () => {
return new Promise((resolve, reject) => {
let SourceEntityBody = {
FirmID: this.props.FirmId,
Name: this.state.Name,
ShortName: this.state.ShortName,
SourceEntityTypeID: this.state.SourceEntityTypeID ? this.state.SourceEntityTypeID.value : null
};
fetch(`${this.props.services.MasterDB.URL}/SOURCE_ENTITY?id=${this.props.entityToEdit}`, {
headers: {
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': this.props.services.MasterDB.subscription_key,
DDHFirm: this.props.user.DDHFirm,
'x-universal-firm': this.props.FirmId
},
method: 'PATCH',
credentials: 'include',
body: JSON.stringify(SourceEntityBody)
})
.then(res => {
return validationManager.ResolveHTTPResponse(res, 'Request Successful', 'Request Failed', false);
})
.then(response => {
if (!response.error) {
resolve();
} else {
reject();
}
});
});
};
Я издеваюсь над функцией :
и вызвал функцию:
const patchSourceEntity = jest.fn(() => {
return new Promise((resolve, reject) => {
resolve();
});
});
expect(wrapper.find('SourceEntityForm').instance().patchSourceEntity()).toBeDefined()
Что еще я мог бы добавить в свой тест, чтобы выполнить его на 100 %
Комментарии:
1. Если вы издеваетесь над функцией, как вы думаете, что именно вы тестируете?
2. замените то, что мы не контролируем, на то, что мы делаем — например, перехватываем вызовы или устанавливаем возвращаемые значения
3. Вот почему вы бы использовали mocking в целом, но если вы издеваетесь над тем, что тестируете, что остается?
4. я новичок в тестировании, просто интересно, как бы я тогда протестировал (response => { if(!response.error) { resolve(); } else { reject(); например
5.
fetch
Функция была бы более полезной для моделирования.