doctest に挑戦

Posted on Fri 08 March 2019 in misc

doctest をやってみました。意外と難しい。REPL で改行コードを入れるのが、ちょっとよくわかりません。テキストファイルから読み込んだ文字列を引数とする関数のテストをしたかったのですが、改行が入った文字列をどうやったら良いのか。そのまま改行してしまうと SyntanError になりました。

>>> print('Raspberry\\nApple')
Raspberry\nApple

この投稿の reStructuredText を doctest でテストした結果です。 -v オプション付きで実行した出力です。

Trying:
    print('Raspberry\\nApple')
Expecting:
    Raspberry\nApple
ok
1 items passed all tests:
   1 tests in try-doctest.rst
1 tests in 1 items.
 1 passed and 0 failed.
Test passed.

改行コードは \\n で良いのか?もともとの会社で書いたコードは最終的に関数の返り値をテキストファイルに書くコードです。その書き出したファイルの中身は問題ありませんでした。

しかし、なんかすっきりしない。こういうときは設計がなんかまずいのかな、などと思っています。