2012-01-29 4 views
2

ユニットテストを定義するプラットフォームに中立な方法があるのが不思議です。 JavaおよびC#の両方でコードベースを使用して新しいセット実装のためのいくつかの単体テストを定義するタスクを考えてみましょう。たとえば、{3、4、5}が交差する{4}が{4}であることをテストすることができます。この単体テストを2回(Javaプロジェクトで1回、C#プロジェクトで1回)書くのではなく、一度だけテストを定義して(おそらくXMLで?)、各ランタイムで自動的にテストを実行して実行することをお勧めします。セットをインスタンス化して移入する方法を定義するために各言語で行う必要がある作業もありますが、その単価を一度設定するだけで、単位テストを複製しない場合には妥当と思われます。プラットフォーム中立ユニットテストですか?

誰でもこの目標を達成するための言語やフレームワークを知っていますか?

答えて

0

私はあなたが記述した行に沿って何かを開発しました。これにより、あなたは高いレベルでテストを定義し、次にCまたはC++でテストハーネスのソースコードを生成できます。私はC#のを生成するためにそれを拡張し、JAVAは、需要に依存するかどうかを

http://www.apollo-systems.co.uk/dev/products/

。主に、CおよびC++が優先言語である組み込みシステム市場を対象としています。

テスト仕様はXML形式で保存されており、何か便利な操作を行うための最小限の操作を定義しています。これを開発する動機は、テストコードを書くのではなく、テストしたいことに集中できるようにすることです。

2

そのようなプラットフォーム中立ユニットテストのための潜在的なフレームワークといくつかの問題がある:C#やJavaコードの断片(のように、そのようなツールは、Javaは/ C#のメソッドまたはクラスのを知る必要があるだろうとの間

  • マッピングがある特定のXML構成ファイルを指定したテスト)
  • 外部ライブラリ間の相違点(たとえ翻訳が容易に達成できるような独自のコードを作成することができますが、外部ライブラリプロバイダはそうではない可能性があります)。
  • 言語の相違点

確かに、かなり進歩した思考通りの設定ファイルでこれらの問題を克服できます。しかし、別の質問が提起されました - それでもまだユニットテスト私たちは何をしていますか?単体テストはであり、これはコード(同じ言語で書かれていて、最初のもののように書かれています)に厳密に拘束されています。 XMLで "単体テスト"を書く..?それは正しいとは言えません。

この簡単なことは覚えておいてください。単体テストは簡単で簡単なプロセスでなければなりません。あなたが求めているアプローチは、それが過度に複雑になる可能性が高いでしょう。同じ言語でテストを書くことは簡単です。結局のところ、実装を書くことができるはずです。余分なフレームワークを導入すると、それを学び、維持し、起こりうる新たな問題に対処する必要が生じます。

全体として、異なるプラットフォームをターゲットとするツールの問題は常に同じです。そのようなツールがあまりにも一般的であるか、プラットフォームの制限があまりにも限定的な場合もあります。そして、それはあなたがプラットフォーム言語/ツール自体にフォールバックする必要があるときです。だから、の非常に単純なケース(あなたの交差するもののようなもの)で魅力的に聞こえるかもしれませんが、全体的に私は努力する価値はないと思います。とにかく混乱してしまってしまうでしょう。

関連する問題