元の辞書のキーで渡されたキーワードを検索し、新しい略語を返すことによって辞書を省略するメソッドのdoctestを作成します。次のように私のドキュメンテーション文字列が見えます:Python:doctestの正規文字列としてUnicode文字列を受け入れる
def abbreviate_dict(key_word, original_dict):
"""
>>> orig_dict = {apple_stems: 2, apple_cores: 5, apple_seeds: 3}
>>> abbreviate_dict('apple', orig_dict)
{'cores': 5, 'seeds': 3, 'stems': 2}
"""
etc.
return new_dict
機能が動作しますが、私はpy.testのdoctestのを実行すると、それはユニコードとして文字列を返すよう、機能がテストに失敗しました。私は関数内で文字列をプログラム的にUnicodeに切り替えるわけではありませんが、Python 2.7がUnicodeで返ってくることを知っています。
Expected:
{'cores': 5, 'seeds': 3, 'stems': 2}
Got:
{u'cores': 5, u'seeds': 3, u'stems': 2}
ユニコードと通常の文字列出力が同じであることを確認するにはどうすればよいですか?
"どのように私は私はUnicodeと通常の文字列の出力が同じで認めることのdoctestを得ることができますか?" - 悪い動き。彼らは全く同じではありません。バイトコードやUnicode文字列で作業しているかどうかは、常に意識しておくことが非常に重要です。 – user2357112
一方、doctestでPython 2/3の互換性を達成するのは困難です。文字列型はPython 2と3で異なって表示されるためです。 – user2357112
これらは同じではありませんが、機能の焦点は型間の解読ではありません代わりに辞書を操作して返します。正しい辞書が返されているかどうかを確認したいのですが、どのように関数の出力の合同性をチェックするためにテストを導くことができますか?役に立つ答えです。 – af3ld