Python 模擬試験

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

setUp の呼び出し回数

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

import unittest, io
calls = []
class T(unittest.TestCase):
    def setUp(self):
        calls.append("s")
    def test_a(self):
        pass
    def test_b(self):
        pass
unittest.TextTestRunner(stream=io.StringIO()).run(unittest.defaultTestLoader.loadTestsFromTestCase(T))
print(len(calls))
  1. A

    1

  2. B

    2

  3. C

    0

  4. D

    4

正解と解説を見る

正解:B

setUp は各テストの前、tearDown は各テストの後に呼ばれる。クラス全体で1回なら setUpClass・tearDownClass。

順実行する行実行後の変数
1`import unittest, io`—
2`calls = []`calls = []
3`class T(unittest.TestCase):`—
4└ `def setUp(self):`—
5└ `def test_a(self):`—
6└ `def test_b(self):`—
7`unittest.TextTestRunner(stream=io.StringIO())…`—
8└ `calls.append("s")`calls = ['s']
9└ `pass`—
10└ `calls.append("s")`calls = ['s', 's']
11└ `pass`—
12`print(len(calls))`calls = ['s', 's']
結果実際の出力2

学習のポイント:テストの独立性を保つために、setUp で毎回準備する。

この問題を演習で解く →

問題一覧へ

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