def test_build_url(self): # build_url()がテスト対象の処理 from booksearch.api import build_url expected = 'https://www.googleapis.com/books/v1/volumes?q=python' actual = build_url({'q': 'python'}) # アサーションメソッドの利用 self.assertEqual(expected, actual)
def test_build_url_fail(self): from booksearch.api import build_url expected = 'https://www.googleapis.com/books/v1/volumes' actual = build_url({}) self.assertEqual(expected, actual, msg='このテストは失敗します')
def test_build_url_empty_param(self): from booksearch.api import build_url expected = 'https://www.googleapis.com/books/v1/volumes?' actual = build_url({}) self.assertEqual(expected, actual)
def test_build_url_multi(self): from booksearch.api import build_url base = 'https://www.googleapis.com/books/v1/volumes?' params = ( (f'{base}q=python', {'q': 'python'}), (f'{base}q=python&maxResults=1', {'q': 'python', 'maxResults': 1}), (f'{base}q=python&langRestrict=en', { 'q': 'python', 'langRestrict': 'en'}), ) for expected, param in params: with self.subTest(**param): actual = build_url(param) self.assertEqual(expected, actual)
def test_build_url_multi(self): from booksearch.api import build_url base = 'https://www.googleapis.com/books/v1/volumes?' expected_url = f'{base}q=python' params = ((expected_url, { 'q': 'python' }), (expected_url, { 'q': 'python', 'maxResults': 1 }), (expected_url, { 'q': 'python', 'langRestrict': 'en' })) for expected, param in params: # withブロック1つがテストケース1つに相当する with self.subTest(**param): actual = build_url(param) self.assertEqual(expected, actual)