| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- ubuntu
- nGrinder
- rethinkdb
- mysql
- PYTHON
- Jupyter
- kitura
- insert
- SWIFT
- sshpass
- postgresql
- ssh
- ftp
- 실행권한
- Materials
- create table
- appium server
- perfect
- centos
- GoCD
- nmap
- port forwarding
- openpyxl
- postgres
- 28015
- appium
- nohup
- Jupyter Notebook
- STF
- STF_PortForwarding
- Today
- Total
don't stop believing
unittest assert 함수 살펴보기 본문
unittest에 있는 assert 함수들을 살펴보겠습니다.
확인을 위해 아래와 같이 준비합니다. 먼저 mymath.py 파일을 만들고 아래 내용을 저장합니다.
# -*- coding: utf-8 -*- # 변수 a와 b를 합합니다. # a, b 변수가 숫자(integer)일 경우 더하기가 됩니다. # a, b 변수가 문자(string)일 경우 두 문자가 합처진 하나의 문장이 됩니다. # a, b 변수가 서로 타입이 다를 경우 에러가 발생합니다. def add(a, b): return a + b # 변수 a와 b를 뺍니다. def subtract(a, b): return a - b # 변수 a와 b를 곱합니다. def multiply(a, b): return a * b # 변수 numerator(분자)와 denominator(분모)를 나눕니다. def divide(numerator, denominator): return float(numerator) / denominator # 변수 a와 b를 비교합니다. # 비교해서 같다면 True, 다르다면 False를 반환합니다. def compare(a, b): if a == b: return True else: return False # 변수 a에 b를 거듭제곱합니다. def involution(a, b): return a**b
이제 mymath.py와 같은 위치에 unittest-sample.py 파일을 만듭니다.
unittest-sample.py 파일에 아래와 같이 추가하고 저장합니다.
# -*- coding: utf-8 -*-
import mymath
import unittest
class TestNGLE(unittest.TestCase):
def test_add_integers(self):
result = mymath.add(1, 2)
# 결과 값이 3일 경우 Pass 입니다.
# result == 3
self.assertEqual(result, 3)
# 결과 값이 5이 아닐 경우 Pass 입니다.
# result != 5
self.assertNotEqual(result, 5)
def test_add_strings(self):
result = mymath.add('My life suddenly took ', 'a turn for the better.')
# 문자를 연결합니다.
# 전체 문장에 'turn for'라는 글자가 있다면 Pass 입니다.
# My life suddenly took a turn for the better.
self.assertIn('turn for', result)
# 전체 문장에 'tongchun'이라는 글자가 없다면 Pass 입니다.
# My life suddenly took a turn for the better.
self.assertNotIn('tongchun', result)
def test_compare_integers(self):
retult = mymath.compare(10, 10)
# result의 값이 True라면 Pass 입니다.
self.assertTrue(retult)
def test_compare_strings(self):
retult = mymath.compare('ngle', 'tongchun')
# result의 값이 False라면 Pass 입니다.
self.assertFalse(retult)
def test_multiply(self):
result = mymath.multiply(10, 2)
# result의 값이 기대한 값(10)보다 크다면 Pass 입니다.
# result > 10
self.assertGreater(result, 10)
def test_subtract(self):
result = mymath.subtract(5, 5)
# result의 값이 기대한 값(-3)보타 크거나 같다면 Pass 입니다.
# result >= -3
self.assertGreaterEqual(result, -3)
def test_divide(self):
result = mymath.divide(3, 9)
# result의 값이 기대한 값(6)보다 작다면 Pass 입니다.
# result < 6
self.assertLess(result, 6)
def test_involution(self):
result = mymath.involution(3, 3)
# result의 값이 기대한 값(81)보다 작거나 같다면 Pass 입니다.
# result <= 81
self.assertLessEqual(result, 81)
if __name__ == '__main__':
unittest.main()
그런다음 cmd에서 python으로 unittest-sample.py를 실행해 봅니다.
D:\Test-Unittest>python unittest-sample.py ... ---------------------------------------------------------------------- Ran 3 tests in 0.000s OK
OK를 보셨다면 이제부터 assert 함수를 설명하겠습니다.
assertEqual()
assertEqual(결과 값, 기대한 값)
실제 데이터 값과 기대한 값이 동일한지 확인합니다.
결과 값과 기대한 값이 같다면 (결과 값 == 기대한 값) Pass 입니다.
# 결과 값이 3일 경우 Pass 입니다. # result == 3 self.assertEqual(result, 3)
assertNotEqual()
assertNotEqual(결과 값, 기대한 값)
실제 데이터 값과 기대한 값이 다른지 확인합니다.
결과 값과 기대한 값이 다르다면 (결과 값 != 기대한 값) Pass 입니다.
# 결과 값이 5이 아닐 경우 Pass 입니다. # result != 5 self.assertNotEqual(result, 5)
assertTrue()
assertTrue(결과 값)
결과 값이 True인지 확인합니다.
결과 값이 True라면 Pass 입니다.
# result의 값이 True라면 Pass 입니다. self.assertTrue(retult)
assertFalse()
assertFalse(결과 값)
결과 값이 False인지 확인합니다.
결과 값이 False라면 Pass 입니다.
# result의 값이 False라면 Pass 입니다. self.assertFalse(retult)
assertGreater()
assertGreater(결과 값, 기대한 값)
결과 값이 기대한 값보다 큰지 확인합니다.
결과 값이 기대한 값보다 크다면 (결과 값 > 기대한 값) Pass 입니다.
# result의 값이 기대한 값(10)보다 크다면 Pass 입니다. # result > 10 self.assertGreater(result, 10)
assertGreaterEqual()
assertGreaterEqual(결과 값, 기대한 값)
결과 값이 기대한 값보다 크거나 같은지 확인합니다.
결과 값이 기대한 값보다 크거나 같다면 (결과 값 >= 기대한 값) Pass 입니다.
# result의 값이 기대한 값(-3)보타 크거나 같다면 Pass 입니다. # result >= -3 self.assertGreaterEqual(result, -3)
assertLess()
assertLess(결과 값, 기대한 값)
결과 값이 기대한 값보다 작은지를 확인합니다.
결과 값이 기대한 값보다 작다면 (결과 값 < 기대한 값) Pass 입니다.
# result의 값이 기대한 값(6)보다 작다면 Pass 입니다. # result < 6 self.assertLess(result, 6)
assertLessEqual()
assertLessEqual(결과 값, 기대한 값)
결과 값이 기대한 값보다 작거나 같은지를 확인합니다.
결과 값이 기대한 갑보다 작거나 같다면 (결과 값 <= 기대한 값) Pass 입니다.
# result의 값이 기대한 값(81)보다 작거나 같다면 Pass 입니다. # result <= 81 self.assertLessEqual(result, 81)
assertIn()
assertIn(찾으려는 문장, 전체 문장)
전체 문장에서 내가 찾으려는 문장이 들어 포함되었는지 확인합니다.
전체 문장에서 내가 찾으려는 문장이 있다면 Pass 입니다.
# 전체 문장에 'turn for'라는 글자가 있다면 Pass 입니다.
# My life suddenly took a turn for the better.
self.assertIn('turn for', result)
assertNotIn()
assertNotIn(찾으려는 문장, 전체 문장)
전체 문장에서 내가 찾으려는 문장이 들어 포함되지 않았는지 확인합니다.
전체 문장에서 내가 찾으려는 문장이 없다면 Pass 입니다.
# 전체 문장에 'tongchun'이라는 글자가 없다면 Pass 입니다.
# My life suddenly took a turn for the better.
self.assertNotIn('tongchun', result)
실행 결과를 자세히 보고싶을 경우 -v 옵션을 주면 됩니다.
D:\Test-Unittest>python unittest-sample.py -v test_add_integers (__main__.TestNGLE) ... ok test_add_strings (__main__.TestNGLE) ... ok test_compare_integers (__main__.TestNGLE) ... ok test_compare_strings (__main__.TestNGLE) ... ok test_divide (__main__.TestNGLE) ... ok test_involution (__main__.TestNGLE) ... ok test_multiply (__main__.TestNGLE) ... ok test_subtract (__main__.TestNGLE) ... ok ---------------------------------------------------------------------- Ran 8 tests in 0.006s OK
여기까지 unittest에서 가장 많이 사용하는 8개 였습니다.
'Python > unittest' 카테고리의 다른 글
| unittest 결과를 html report로 뽑아봅시다. (HtmlTestRunner) (0) | 2018.11.30 |
|---|---|
| Python Unittest 살펴보기 (0) | 2017.11.06 |