ライブラリを作成しています。ライブラリの使用方法に関するチュートリアルを提供したいと思います。そのようなチュートリアルには、使用例としてコードスニペットが含まれます。したがって、これらのスニペットをテストして、コードが正しいことを確認します。
ドキュメントの例をどのようにテストできますか?
ドキュメントテキストを従来の単体テストでインターリーブすることを考えていますが、私が得たすべてのアイデアには優雅さが欠けているようです。 1つのオプションは、phpdocコメントをテストに追加して、どういうわけかソースコードのWeb /印刷可能なバージョンを作成することです。別の方法は、Markdownドキュメントからテストの一部を参照することです。どちらの方法でも、物事を組み合わせるために何らかのツールが必要です。私は既存のツールを使用したいと思います。
ライブラリはPHPにあり、テストにはPHPUnitを使用しますが、言語に関係なくインスピレーションを探しています。
(注:私は 投稿 元々スタックオーバーフローでこの質問をしましたが、そこにはうまく適合しませんでした。)
私は2つの流行語を思い出すことができます:
文芸的プログラミング -コード(および本番)とその人間が読める包括的な説明をブレンドするより一般的なアプローチ。多くのプログラミング言語には、テキストをリッチテキストドキュメントとしてフォーマットしたり、コンパイルと実行のためにコードを抽出したりできるツールがあります。 phpでもいくつか見つかりますが、どれほど信頼できるかはわかりません。このテクノロジーを使用してシステムを実装できます。
doctest -あなたが説明したものと基本的に同じもので、python
標準ライブラリの一部としてずっと以前に実装されました。コメントのドキュメント化の一部としてスニペットを記述できます。スニペットは、特別な方法でモジュールを呼び出すことによって実行されます。繰り返しますが、グーグルはこの概念のいくつかのphp実装を知っています。
あなたが探しているのは Behavior Driven Development :
BDDは、動作と期待される結果を表現できる自然言語の構成要素(たとえば、英語のような文)を使用した単純なドメイン固有言語(DSL)を使用することにより、主に促進されます。テストスクリプトは、高度なさまざまなレベルのDSLの人気のあるアプリケーションです。
この領域で使用されるツールの例は Cucumber であり、仕様の記述に使用される言語は Gherkin と呼ばれます。
基本的に目標は、実行可能なテストスクリプトでもある要件を作成することです。