personal-budget-app's Issues
README
@alexeypato, давай добавим в репозиторий файл README, в котором будет описано:
- Как установить и запустить приложение у себя локально (какие команды выполнять).
- Как запускать тесты.
И вообще, все, что посчитаешь нужным рассказать.
Тесты
Расскажи, пожалуйста, в чем у тебя загвоздка с тестами.
Я попробую тебе помочь. Я вижу, ты уже добавил jest
и enzyme
в зависимости. Давай на этом и остановимся и будем использовать их.
Вообще, тесты построены на том, что ты сравниваешь какие-то 2 переменные и если они не совпадают, то говоришь, что тест проходит, а если эти переменные не совпадают, говоришь, что тест падает.
В разных библиотеках для тестирования, такие сравнения делаются по-разному:
assert(2*2, 4)
expect(2*2).toBe(4)
Кроме того, у библиотек есть функционал, который позволяет выводить красиво сообщения об ошибках и вообще писать хорошие логи:
describe('School Match', () => {
it("2*2 is equal 4", () => {
expect(2*2).toBe(4);
});
});
Такой код выведет:
PASS test/schoolMath.spec.js
School Match
✓ 2*2 is equal 4 (3ms)
Помимо сравнения двух переменных у библиотек, таких как jest, есть много других удобных функций. Смотри раздел про матчеры: https://facebook.github.io/jest/docs/using-matchers.html#content. Например, нам может пригодиться toMatch
. Он сравнивает строки.
Enzyme нам нужен для того, чтобы рендерить компоненты и взаимодействовать с ними (кликать и т.п.).
Самый простой тест, это мы рендерим компонент и проверяем его содержимое:
import React from 'react';
import { shallow } from 'enzyme';
import Footer from '../src/components/Footer';
describe('Footer component', () => {
it('Contains copyright information', () => {
const wrapper = shallow(<Footer />);
expect(wrapper.find('.container .text-right')).toMatch(/Aliaksei Patotski/);
});
});
В более сложных тестах в компонент при рендеринге нужно передавать объекты и проверять, например, что значения из этих объектов отображаются и отображаются в правильных местах.
Спрашивай вопросы, если что-то непонятно.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.