<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 13.4.?正面測試 (Testing for success) 單元測試的基礎是構建獨立的測試用例 (test case)。一個測試用例只回答一個關于被測試代碼的問題。 一個測試用例應該做到: * 完全獨立運行,不需要人工輸入。單元測試應該是自動的。 * 可以自己判斷被測試函數是通過還是失敗,不需要人工干預結果。 * 獨立運行,可以與其他測試用例隔離 (盡管它們可能測試著同一個函數)。每個測試用例是一個孤島。 基于如上原則,讓我們構建第一個測試用例。應符合如下[要求](index.html#roman.requirements): 1. `toRoman` 應該為所有 `1` 到 `3999` 的整數返回羅馬數字表示。 ## 例?13.2.?`testToRomanKnownValues` ``` class KnownValues(unittest.TestCase): knownValues = ( (1, 'I'), (2, 'II'), (3, 'III'), (4, 'IV'), (5, 'V'), (6, 'VI'), (7, 'VII'), (8, 'VIII'), (9, 'IX'), (10, 'X'), (50, 'L'), (100, 'C'), (500, 'D'), (1000, 'M'), (31, 'XXXI'), (148, 'CXLVIII'), (294, 'CCXCIV'), (312, 'CCCXII'), (421, 'CDXXI'), (528, 'DXXVIII'), (621, 'DCXXI'), (782, 'DCCLXXXII'), (870, 'DCCCLXX'), (941, 'CMXLI'), (1043, 'MXLIII'), (1110, 'MCX'), (1226, 'MCCXXVI'), (1301, 'MCCCI'), (1485, 'MCDLXXXV'), (1509, 'MDIX'), (1607, 'MDCVII'), (1754, 'MDCCLIV'), (1832, 'MDCCCXXXII'), (1993, 'MCMXCIII'), (2074, 'MMLXXIV'), (2152, 'MMCLII'), (2212, 'MMCCXII'), (2343, 'MMCCCXLIII'), (2499, 'MMCDXCIX'), (2574, 'MMDLXXIV'), (2646, 'MMDCXLVI'), (2723, 'MMDCCXXIII'), (2892, 'MMDCCCXCII'), (2975, 'MMCMLXXV'), (3051, 'MMMLI'), (3185, 'MMMCLXXXV'), (3250, 'MMMCCL'), (3313, 'MMMCCCXIII'), (3408, 'MMMCDVIII'), (3501, 'MMMDI'), (3610, 'MMMDCX'), (3743, 'MMMDCCXLIII'), (3844, 'MMMDCCCXLIV'), (3888, 'MMMDCCCLXXXVIII'), (3940, 'MMMCMXL'), (3999, 'MMMCMXCIX')) def testToRomanKnownValues(self): """toRoman should give known result with known input""" for integer, numeral in self.knownValues: result = roman.toRoman(integer) self.assertEqual(numeral, result) ``` | | | | --- | --- | | \[1\] | 編寫測試用例的第一步就是繼承 `unittest` 模塊中的 `TestCase` 類,它提供了很多可以用在你的測試用例中來測試特定情況的有用方法。 | | \[2\] | 這是我手工轉換的一個 integer/numeral 對列表。它包含了最小的十個數、最大的數、每個單字符羅馬數字對應的數,以及其他隨機挑選的有效數樣本。單元測試的關鍵不在于所有可能的輸入,而是一個有代表性的樣本。 | | \[3\] | 每個獨立測試本身都是一個方法,既不需要參數也不返回任何值。如果該方法正常退出沒有引發異常,測試被認為通過;如果測試引發異常,測試被認為失敗。 | | \[4\] | 這里你真正調用了 `toRoman` 函數。(當然,函數還沒有編寫,但一旦被編寫,這里便是調用之處。) 注意你在這里為 `toRoman` 函數定義了 API :它必須接受整數 (待轉換的數) 并返回一個字符串 (對應的羅馬數字表示),如果 API 不是這樣,測試將失敗。 | | \[5\] | 同樣值得注意,你在調用 `toRoman` 時沒有試圖捕捉任何可能發生的異常。這正是我們所希望的。以有效輸入調用 `toRoman` 不會引發任何異常,而你看到的這些輸入都是有效的。如果 `toRoman` 引發了異常,則測試失敗。 | | \[6\] | 假設 `toRoman` 函數被正確編寫,正確調用,運行成功并返回一個值,最后一步便是檢查這個返回值_正確_ 與否。這是一個常見的問題,`TestCase` 類提供了一個方法:`assertEqual`,來測試兩個值是否相等。如果 `toRoman` 返回的結果 (`value`) 不等于我們預期的值 (`numeral`),`assertEqual` 將會引發一個異常,測試也就此失敗。如果兩個值相等,`assertEqual` 什么也不做。如果每個從 `toRoman` 返回的值都等于預期值,`assertEqual` 便不會引發異常,于是 `testToRomanKnownValues` 最終正常退出,這意味著 `toRoman` 通過了該測試。 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看