Python 模擬試験

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

subTest

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

import unittest, io
class T(unittest.TestCase):
    def test(self):
        for n in (1, 2, 3):
            with self.subTest(n=n):
                self.assertLess(n, 3)
r = unittest.TextTestRunner(stream=io.StringIO()).run(unittest.defaultTestLoader.loadTestsFromTestCase(T))
print(r.testsRun, len(r.failures))
  1. A

    3 1

  2. B

    1 1

  3. C

    1 0

  4. D

    3 3

正解と解説を見る

正解:B

subTest は、1 つのテストの中で、パラメータを変えながら複数のケースを確かめる。失敗しても、次のケースへ進む。

順実行する行実行後の変数
1`import unittest, io`—
2`class T(unittest.TestCase):`—
3└ `def test(self):`—
4`r = unittest.TextTestRunner(stream=io.StringI…`—
5└ `for n in (1, 2, 3):`n = 1
6└ `with self.subTest(n=n):`n = 1
7└ `self.assertLess(n, 3)`n = 1
8└ `with self.subTest(n=n):`n = 1
9└ `for n in (1, 2, 3):`n = 2
10└ `with self.subTest(n=n):`n = 2
11└ `self.assertLess(n, 3)`n = 2
12└ `with self.subTest(n=n):`n = 2
13└ `for n in (1, 2, 3):`n = 3
14└ `with self.subTest(n=n):`n = 3
15└ `self.assertLess(n, 3)`n = 3
16└ `with self.subTest(n=n):`n = 3
17└ `for n in (1, 2, 3):`n = 3
18`print(r.testsRun, len(r.failures))`—
結果実際の出力1 1

学習のポイント:失敗したケースは、パラメータ付きで報告される。

この問題を演習で解く →

問題一覧へ

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