diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 7a74c0c444..35249ae1b7 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-22 00:04+0000\n" -"PO-Revision-Date: 2018-05-23 16:14+0000\n" +"PO-Revision-Date: 2023-08-29 15:33+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -17,10 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.3.2\n" #: ../../library/unittest.mock.rst:3 msgid ":mod:`unittest.mock` --- mock object library" -msgstr "" +msgstr ":mod:`unittest.mock` — mock 物件函式庫" #: ../../library/unittest.mock.rst:13 msgid "**Source code:** :source:`Lib/unittest/mock.py`" @@ -32,6 +33,8 @@ msgid "" "replace parts of your system under test with mock objects and make " "assertions about how they have been used." msgstr "" +":mod:`unittest.mock` 在 Python 中是一個用於進行測試的函式庫。 它允許你用 " +"mock 物件在測試中替換部分系統,並判定它們是如何被使用的。" #: ../../library/unittest.mock.rst:21 msgid "" @@ -41,6 +44,9 @@ msgid "" "and arguments they were called with. You can also specify return values and " "set needed attributes in the normal way." msgstr "" +":mod:`unittest.mock` 提供了一個以 :class:`Mock` 為核心的類別,去除在測試中建" +"立大量 stubs 的需求。 在執行動作之後,你可以判定哪些 method (方法)/屬性被" +"使用,以及有哪些引數被呼叫。 你還可以用常規的方式指定回傳值與設定所需的屬性。" #: ../../library/unittest.mock.rst:27 msgid "" @@ -50,6 +56,10 @@ msgid "" "some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" "`patch`." msgstr "" +"此外,mock 還提供了一個 :func:`patch` 裝飾器,用於 patching 測試範圍內對 " +"module(模組)以及 class(類別)級別的屬性,以及用於建立唯一物件的 :const:" +"`sentinel`\\ 。有關如何使用 :class:`Mock`\\、\\ :class:`MagicMock` 和 :func:" +"`patch` 的一些範例,請參閱\\ `快速導引 `_。" #: ../../library/unittest.mock.rst:33 msgid "" @@ -57,16 +67,21 @@ msgid "" "assertion' pattern instead of 'record -> replay' used by many mocking " "frameworks." msgstr "" +"Mock 被設計用於與 :mod:`unittest` 一起使用,並且基於 「action(操作) -> " +"assertion(判定)」 模式,而不是許多 mocking 框架使用的 「record(記錄) -> " +"replay(重播)」 模式。" #: ../../library/unittest.mock.rst:37 msgid "" "There is a backport of :mod:`unittest.mock` for earlier versions of Python, " "available as `mock on PyPI `_." msgstr "" +"對於早期版本的 Python,有一個 backport(向後移植的)\\ :mod:`unittest.mock` " +"可以使用,\\ `從 PyPI 下載 mock `_。" #: ../../library/unittest.mock.rst:42 msgid "Quick Guide" -msgstr "" +msgstr "快速導引" #: ../../library/unittest.mock.rst:60 msgid "" @@ -75,12 +90,16 @@ msgid "" "can configure them, to specify return values or limit what attributes are " "available, and then make assertions about how they have been used:" msgstr "" +":class:`Mock` 和 :class:`MagicMock` 物件在你存取它們時建立所有屬性和 method" +"(方法),並儲存它們如何被使用的詳細訊息。你可以配置它們,以指定回傳值或限制" +"可用的屬性,然後對它們的使用方式做出判定:" #: ../../library/unittest.mock.rst:72 msgid "" ":attr:`side_effect` allows you to perform side effects, including raising an " "exception when a mock is called:" msgstr "" +":attr:`side_effect` 允許你執行 side effects,包含在 mock 被呼叫時引發例外:" #: ../../library/unittest.mock.rst:93 msgid "" @@ -89,6 +108,9 @@ msgid "" "from another object. Attempting to access attributes or methods on the mock " "that don't exist on the spec will fail with an :exc:`AttributeError`." msgstr "" +"Mock 有許多其他方法可以讓你配置與控制它的行為。例如,\\ *spec* 引數可以配置 " +"mock ,讓其從另一個物件獲取規格。嘗試讀取 mock 中不存在於規格中的屬性或方法將" +"會失敗,並出現 :exc:`AttributeError`\\ 。" #: ../../library/unittest.mock.rst:98 msgid "" @@ -97,6 +119,10 @@ msgid "" "with a mock (or other object) during the test and restored when the test " "ends::" msgstr "" +":func:`patch` 裝飾器/情境管理器可以在測試中簡單的 mock 模組中的類別或物件。" +"被指定的物件在測試期間會被替換為 mock(或其他物件),並在測試結束時恢復:\n" +"\n" +"::" #: ../../library/unittest.mock.rst:117 msgid "" @@ -105,6 +131,9 @@ msgid "" "decorators are applied). This means from the bottom up, so in the example " "above the mock for ``module.ClassName1`` is passed in first." msgstr "" +"當你嵌套 patch 裝飾器時,mock 會以被應用的順序傳遞到裝飾函數(裝飾器應用的正" +"常 *Python* 順序)。這意味著由下而上,因此在上面的範例中,\\ ``module." +"ClassName1`` 的 mock 會先被傳入。" #: ../../library/unittest.mock.rst:122 msgid "" @@ -112,12 +141,15 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"使用 :func:`patch` 時,需注意的是你得在被查找物件的命名空間中(in the " +"namespace where they are looked up)patch 物件。這通常很直接,但若需要快速導" +"引,請參閱\\ :ref:`該 patch 何處 `\\ 。" #: ../../library/unittest.mock.rst:126 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" -msgstr "" +msgstr "裝飾器 :func:`patch` 也可以在 with 陳述式中被用來作為情境管理器:" #: ../../library/unittest.mock.rst:136 msgid "" @@ -125,6 +157,8 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"也有 :func:`patch.dict`\\ ,用於在測試範圍中設定 dictionary(字典)內的值,並" +"在測試結束時將其恢復為原始狀態:" #: ../../library/unittest.mock.rst:147 msgid "" @@ -132,6 +166,8 @@ msgid "" "The easiest way of using magic methods is with the :class:`MagicMock` class. " "It allows you to do things like:" msgstr "" +"Mock 支援對 Python 的\\ :ref:`魔術方法 `\\ 的 mocking。最簡單" +"使用魔術方法的方式是使用 :class:`MagicMock` 類別。它允許你執行以下操作:" #: ../../library/unittest.mock.rst:157 msgid "" @@ -140,12 +176,15 @@ msgid "" "is just a Mock variant that has all of the magic methods pre-created for you " "(well, all the useful ones anyway)." msgstr "" +"Mock 允許你將函式(或其他 Mock 實例)分配給魔術方法,並且它們將被適當地呼" +"叫。\\ :class:`MagicMock` 類別是一個 Mock 的變體,它為你預先建好了所有魔術方" +"法(好吧,所有有用的方法)。" #: ../../library/unittest.mock.rst:162 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" -msgstr "" +msgstr "以下是在一般 Mock 類別中使用魔術方法的範例:" #: ../../library/unittest.mock.rst:170 msgid "" @@ -157,12 +196,17 @@ msgid "" "replacing, and any functions and methods (including constructors) have the " "same call signature as the real object." msgstr "" +"為了確保測試中的 mock 物件與它們要替換的物件具有相同的 api,你可以使用\\ :" +"ref:`自動規格 `\\ 。自動規格(auto-speccing)可以通過 patch " +"的 *autospec* 引數或 :func:`create_autospec` 函式來完成。自動規格建立的 " +"mock 物件與它們要替換的物件具有相同的屬性和方法,並且任何函式和方法(包括建構" +"函式)都具有與真實物件相同的呼叫簽名(call signature)。" #: ../../library/unittest.mock.rst:178 msgid "" "This ensures that your mocks will fail in the same way as your production " "code if they are used incorrectly:" -msgstr "" +msgstr "這可以確保如果使用方法錯誤,你的 mock 會跟實際程式碼以相同的方式失敗:" #: ../../library/unittest.mock.rst:194 msgid "" @@ -170,10 +214,12 @@ msgid "" "signature of the ``__init__`` method, and on callable objects where it " "copies the signature of the ``__call__`` method." msgstr "" +":func:`create_autospec` 也可以用在類別上,它複製了 ``__init__`` 方法的簽名," +"它也可以用在可呼叫物件上,其複製了 ``__call__`` 方法的簽名。" #: ../../library/unittest.mock.rst:201 msgid "The Mock Class" -msgstr "" +msgstr "Mock 類別" #: ../../library/unittest.mock.rst:212 msgid ""