728x90

Programming 49

pytest pytest.ini, conftest.py

pytest 에서 설정 정의 등 여러가지 할 수 있게 도와주는 대표적(?) 파일들 1. pytest.ini pytest의 기본 설정을 정의 (음 node package.json이 생각났음..)# pytest.ini[pytest]addopts = -v --tb=short --maxfail=1testpaths = testsmarkers = regression: 회귀 테스트용 마커pythonpath = .addopts: 기본 옵션을 전달함, 적힌 옵션이 pytest 터미널에 입력 시 적용되는 것들이다.testpaths: pytest가 테스트를 자동으로 찾을 디렉토리를 지정 markers: 사용자 정의 마커이며 @pytest.mark.regression로 적힌 test를 모아서 진행할 수 있고, pytes..

Programming/Pytest 2024.10.27

API Test

project_root/│├── tests/ # 모든 테스트 관련 코드가 들어가는 폴더│ ├── __init__.py # 패키지 초기화 파일│ ├── test_setup.py # 공통 API 설정 및 유틸리티 함수│ ├── test_get.py # GET 요청 관련 테스트│ └── ...│├── reports/ # HTML 테스트 리포트가 저장되는 폴더│ └── test_report.html│└── requirements.txt # 필요한 라이브러리 목록 기본 폴더 구조 test_setup.pyclass APITestSetup: def __in..

React Hook - useEffect

React Hook인 useEffect 는 컴포넌트 라이프 사이클에서 일어나는 Side Effect를 관리할 수 있게 해준다. Side Effect는 컴포넌트가 렌더링 과정에서 렌더링 이외에 작업을 부르는데, API 호출 , 데이터 저장, 로그 등 다양한 일들이 있을 수 있다. 타이머 등을 동작하는 웹 사이트에서 언마운트가 될 때 해제되어야 하는 업무들을 포함한다. import { useEffect } from 'react';useEffect(() => { fetch("https://api.example.com/data") .then(response => response.json())}, []); // [] 는 의존성 배열 일반적으로 하는 useEffect 사용하는 형태로 렌더링 후 즉 DOM 업..

Programming/React 2024.09.22

React Hook - useState

어떻게 보면 React를 그냥 따라 쓰고 예제만 할 뿐 공부가 많이 부족했던거 같다. 그래서 찬찬히 공부 https://react.dev/reference/react/useState useState – ReactThe library for web and native user interfacesreact.devuseState는 state 상태를 저장하며 변경 감지 및 UI 업데이트를 하는 역할을 한다.가령 state가 아닌 변수가 업데이트가 일어난다고 해서 바로 업데이트 되어 화면에 해당 값이 반영되지는 않는다. useState는 다음 아래와 같이 [변수, 세팅할변수] = useState(초기값); 을 통해 사용을 한다. import "./styles.css";import { useState } from..

Programming/React 2024.09.21

Overlay Effect On Hover

간만에 공부해보는 CSS  쪼렙이라 쉽지 않은데, 마우스를 Hover 하면 div 태그 위에 반투명 overlay가 뜨면서 다른 글자나 또는 형태를 CSS로 정리   rect text div 태그 안에 div 자식을 만들어둔다. 안에 있는 요소가 overlay 가 될 친구이다..rect { position: relative; width: 100px; height: 100px; background: -webkit-linear-gradient(bottom left, #793ad3 0%, #bbf0d3 100%); background: -moz-linear-gradient(bottom left, #793ad3 0%, #bbf0d3 100%); background: -o-linear..

Programming/CSS 2024.09.21

Assertion

메서드내용버전assertEqual(a, b)a == b assertNotEqual(a, b)a != b assertTrue(x)bool(x) is True assertFalse(x)bool(x) is False assertIs(a, b)a is b3.1assertIsNot(a, b)a is not b3.1assertIsNone(x)x is None3.1assertIsNotNone(x)x is not None3.1assertIn(a, b)a in b3.1assertNotIn(a, b)a not in b3.1assertIsInstance(a, b)isinstance(a, b)3.2assertNotIsInstance(a, b)not isinstance(a, b)3.2 docs.python.org에 있는 내용인..

Unittest

Python 내장 모듈로, 단위 테스트를 위한 프레임워크다. Junit에서 영감을 받아 비슷한 특징을 갖고 있다.테스트 케이스 작성, 테스트 스위트 구성, 테스트 실행 (assert 검증), 테스트 결과 보고 등의 다양한 기능을 제공한다. import unittest# 테스트할 함수def add(x, y): return x + y# 테스트 케이스 정의class TestOperation(unittest.TestCase): def test_add(self): result = add(10, 5) self.assertEqual(result, 15) # 기대 값과 실제 값이 같은지 확인# 테스트 실행if __name__ == '__main__': unittest...

Requests API 테스트

API를 테스트 하기 위해서는 http 관련 라이브러리가 필요한데, python 에서는 requests를 쓴다. requestsPython HTTP for Humans.pypi.orgnode에 axios 같은?import requestsdef get_data_from_api(url): response = requests.get('https://api_url.com') response.raise_for_status() //https 오류가 발생하면 예외가 발생 됨 assert response["id"] == 1 # 응답에서 특정 키의 값 확인 raise_for_status() 는 bad request (a 4XX client error or 5XX server error resp..

Programming/Pytest 2024.08.15

@pytest.fixture

Pytest Fixture란?fixture는 setup과 teardown 작업을 수행하는 데 사용되는 데코레이터로 사용된다.즉, 아래와 같은 형태로 sampe_fixture에서 return한 data 를 test_sample의 인자로 전달 후, 사용할 수 있다는 의미import pytest@pytest.fixturedef sample_fixture(): data = {"key": "value"} return datadef test_sample(sample_fixture): assert sample_fixture["key"] == "value" 어떻게 보면 cypress 등에 beforeEach 등으로 보면 될 듯. 말그대로 테스트 시작전 setup을 하거나 하는 형태로, 물론 위에 써둔 ..

Programming/Pytest 2024.07.14

Assertion

https://docs.pytest.org/en/stable/how-to/assert.html pytest 를 사용하면 표준 Python assert에 따라 값을 검증 할 수 있다고 한다.# content of test_assert1.pydef f(): return 3def test_function(): assert f() == 4 기본적인 assert 문은 조건이 참인지 확인하는데, 조건이 거짓이면 실패 메시지를 생성하고 테스트를 실패로 처리함.또한 아래 처럼 , 를 통해 사용자 메시지를 지정할 수도 있음def test_custom_message(): assert 1 + 1 == 3, "Expected 3" # 실패 시 사용자 메세지 출력 리스트에 2가 있는지 확인def test_co..

Programming/Pytest 2024.07.13
728x90