【python3 unittest】結果を比較!Assert Methods
Unittest で、比較した結果によってテストをNGにしたり、OKにしたりしたいな、、、
と思い、Assert Methodsを使ったので、使い方まとめ。
ついでにPythonの文法も勉強ーーー!
公式Docs:
メソッド |
確認事項 |
初出 |
---|---|---|
|
||
|
||
|
||
|
||
|
3.1 |
|
|
3.1 |
|
|
3.1 |
|
|
3.1 |
|
|
3.1 |
|
|
3.1 |
|
|
3.2 |
|
|
3.2 |
* assertEqual(a,b)
a == bならテスト結果をOKにする。a とb は厳密に同じ型でないとOKにならない
使用例
# WebDriverで現在のURLを取得
before_submit_url = self.driver.current_url
#ボタンクリック
driver.find_element_by_name("button").click()
# WebDriverで現在のURLを取得
after_submit_url = self.driver.current_url
#画面遷移してなければテストOK
assertEqual(before_submit_url, after_submit_url)
* assertNotEqual(a,b)
a != bならテスト結果をOKにする。
使用例
# WebDriverで現在のURLを取得
before_submit_url = self.driver.current_url
#ボタンクリック
driver.find_element_by_name("button").click()
# WebDriverで現在のURLを取得
after_submit_url = self.driver.current_url
#画面遷移してればテストOK
assertNotEqual(before_submit_url, after_submit_url)
*assertTrue(x)
bool(x) is Trueならテスト結果をOKにする。
使用例
a = 5 - 9
# a が0 じゃなかったらテストOK
assertTrue(a)
Python bool method の引数はオブジェクト。
bool("hello"), bool(0.7)などはTrue、bool(""), bool(0)などはFalseになるよ
bool関数参考:
*assertFalse(x)
bool(x) is Falseならテスト結果をOKにする。
使用例は省略(assertTrueの逆なので。)
*assertIs(a, b)
a is bならテスト結果をOKにする。
使用例(あんまりいい例が、、思いつかなかったよ、、)
a = [100, 200, 300]
b = [100, 200, 300]c = a
# a とcが一緒のオブジェクトなのでテスト結果OKになる
assertIs(a,c)
== と is 演算子の違い:
*assertIsNot(a, b)
a is not bならテスト結果をOKにする。
使用例
a = [100, 200, 300]
b = [100, 200, 300]c = a
# a とbが異なるオブジェクトなのでテスト結果OKになる
assertIsNot(a,b)
*assertIsNone(x)
x is Noneならテスト結果をOKにする。
使用例
import yaml
# yamlファイルを読み込み
with open('input.yaml') as file:
obj = yaml.safe_load(file)
# keyが”z”の値がなければテストOK
assertTrue(obj['z'])
python のNoneは多言語のNull ですー。参考:https://www.sejuku.net/blog/50205
*assertIsNotNone(x)
x is not Noneならテスト結果をOKにする。
使用例は省略(assertIsNoneの逆なので。)
*assertIn(a, b)
a in bならテスト結果をOKにする。
使用例
import yaml
# yamlファイルを読み込み
with open('input.yaml') as file:
obj = yaml.safe_load(file)
# "Yamada"という値がyamlファイルにあればテストOK
assertIn("Yamada", obj.values())
参考:https://hibiki-press.tech/learn_prog/python/in-operator/4126
*assertNotIn(a, b)
a not in bならテスト結果をOKにする。
使用例は省略(assertInの逆なので。)
*assertIsInstance(a, b)
isinstance(a, b)ならテスト結果をOKにする。
# class="test" という要素を取得
element = driver.find_elements_by_class_name("test")
# 上記で取得した要素が複数あればテスト結果をOKにする。
assertIsInstance(element, list)
参考:https://www.javadrive.jp/python/function/index7.html#section1
*assertNotIsInstance(a, b)
not isinstance(a, b)ならテスト結果をOKにする。
使用例は省略(assertIsInstanceの逆なので。)
以上ですーーー!!!
ドキュメントを速く読めるように、基本的な文法は押さえておこう、、、と思う今日この頃です、、、
おやすみなさいいいぃぃぃ