tapitapi’s blog

1日1杯タピオカ!エンジニア

【python3 unittest】結果を比較!Assert Methods

Unittest で、比較した結果によってテストをNGにしたり、OKにしたりしたいな、、、

 

と思い、Assert Methodsを使ったので、使い方まとめ。

ついでにPythonの文法も勉強ーーー!

 

公式Docs:

docs.python.org

 

メソッド

確認事項

初出

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 b

3.1

assertIsNot(a, b)

a is not b

3.1

assertIsNone(x)

x is None

3.1

assertIsNotNone(x)

x is not None

3.1

assertIn(a, b)

a in b

3.1

assertNotIn(a, b)

a not in b

3.1

assertIsInstance(a, b)

isinstance(a, b)

3.2

assertNotIsInstance(a, b)

not isinstance(a, b)

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関数参考:

比較演算子の使い方 | Python入門


*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 演算子の違い:

== と is の違い | Python-izm

 

*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の逆なので。)

 

以上ですーーー!!!

 

ドキュメントを速く読めるように、基本的な文法は押さえておこう、、、と思う今日この頃です、、、

 

おやすみなさいいいぃぃぃ