Python 模擬試験

Python実践 模擬試験 第2回 問35・16章 テスト(unittest)

assertRaises とテスト結果

次のコードを実行したときの出力として、正しいものを1つ選べ。

import unittest, io
class T(unittest.TestCase):
    def test_a(self):
        self.assertEqual(1 + 1, 2)
    def test_b(self):
        with self.assertRaises(ZeroDivisionError):
            1 / 0
r = unittest.TextTestRunner(stream=io.StringIO()).run(unittest.defaultTestLoader.loadTestsFromTestCase(T))
print(r.testsRun, r.wasSuccessful())
  1. A

    1 True

  2. B

    2 False

  3. C

    0 True

  4. D

    2 True

正解と解説を見る

正解:D

assertRaises は、指定した例外が起きることを確かめる。TestResult の testsRun・wasSuccessful() で結果を確認できる。

順実行する行実行後の変数
1`import unittest, io`—
2`class T(unittest.TestCase):`—
3└ `def test_a(self):`—
4└ `def test_b(self):`—
5`r = unittest.TextTestRunner(stream=io.StringI…`—
6└ `self.assertEqual(1 + 1, 2)`—
7└ `with self.assertRaises(ZeroDivisionError):`—
8└ `1 / 0`—
9└ `with self.assertRaises(ZeroDivisionError):`—
10`print(r.testsRun, r.wasSuccessful())`—
結果実際の出力2 True

学習のポイント:assertEqual・assertTrue・assertIn など、アサーションのメソッドは多い。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。