私が勤務したほとんどの場所で、C++/Obj-Cコンポーネントの自動テストは、コンポーネントに直接実装された単純化されたドメイン固有の言語を使用して行われています。自動テストのためのドメイン固有の言語、良いアイデアですか?
あなたがアイデアを得るだけように、テストスクリプトは、おおよそ次のようになります。
do_this
do_that
repeat 10
do_more_stuff_with_args 5 3
again
...とDSLは、多かれ少なかれ複雑な(通常の呼び出しで結果として何かにそれらのコマンドを翻訳します1つまたは複数のC++/Obj-C関数)。
私の最初のアイデアは、このようなものを見ると、自国のDSLではなく、確立された明確な言語でうまくいくことです。たとえば、これはSchemeやLuaを埋め込んで無料で基本を取得したり、テスト中のコンポーネントを振ることで可能です。 Python。私はスクリプト作成を開始するのが簡単になると思っています(人々は既に言語を知っていて、よく定義されているので)、メンテナンス作業が減り、より多くの機能を追加する作業が少なくなります。
しかし、私は実際にこのアプローチを取ったことはありませんでした。この問題についてのあなたの経験は何ですか?シンプルなテストですか?DSL:「ここに発明されていない」症候群の症例ですか?それとも、通常は最も効果的な方法ですか?
そのようなDSLを実際の高さにした人もいます。http://cukes.info/ :) – 9000