アサートはテスト ケースで使用され、作成したものが将来的に予期しないものをレンダリングしないようにします。たとえば、誤った入力時に例外がスローされるようにアサートできます。
プログラミングで 1 つの変更を行うと、多くの場合、コードの他の部分を変更する必要があります。アサーションは、変更内容によって過去に作成したコードが壊れないようにします。
例外は良いです。それらは予期され、例外を介して処理されます。たとえば、間違ったログインとパスワードの例外があります。
ログインまたはパスワードが正しくないと、予想される例外が発生すると断言できます。
assert には、主に 3 つのものが含まれます。何をテストしているか(関数名、sign_in
つまり{'email': 'john@example.com', 'password': hashlib.md5('my_password')}
assertTrue('user_name' in response, 'Expecting user_name to be in response!')
例外は、コード内の通常の論理的な代替手段です。アサートは、論理パスがたどられるべきときにたどられることを確認するためのテストです。
python unittest フレームワークに従って、例外がスローされることをアサートできます。
import random import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()