Python 模擬試験

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

assertAlmostEqual

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

import unittest, io
class T(unittest.TestCase):
    def test_a(self):
        self.assertAlmostEqual(0.1 + 0.2, 0.3)
    def test_b(self):
        self.assertEqual(0.1 + 0.2, 0.3)
r = unittest.TextTestRunner(stream=io.StringIO()).run(unittest.defaultTestLoader.loadTestsFromTestCase(T))
print(r.testsRun, len(r.failures))
  1. A

    2 0

  2. B

    2 2

  3. C

    2 1

  4. D

    1 1

正解と解説を見る

正解:C

浮動小数点数の比較には、assertAlmostEqual(既定は小数点以下 7 桁)や math.isclose を使う。

順実行する行実行後の変数
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.assertAlmostEqual(0.1 + 0.2, 0.3)`—
7└ `self.assertEqual(0.1 + 0.2, 0.3)`—
8`print(r.testsRun, len(r.failures))`—
結果実際の出力2 1

学習のポイント:failures はアサーションの失敗、errors は予期しない例外。

この問題を演習で解く →

問題一覧へ

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