2017-01-18 17 views
2

構成が異なるハードウェア製品をテストします。私はすべての製品のすべてのテストケースをループするテストメソッドを持っています。一部の製品は機能をサポートしていないため、テストしないでください。テスト方法に関する情報を保存するための最良の方法

テスト方法をよりダイナミックにするにはどうすればよいでしょうか?私はxmlファイルを使用することを考えていました。どこにどの製品をどのような手順で実行するのかを定義します。以下のような何か:

<products> 
<product> 
    <id>1</id> 
    <steps> 
     <step id="1" desc="Description1" /> 
     <step id="2" desc="Description2" /> 
     <step id="3" desc="Description3" /> 
<product> 
<product> 
    <id>2</id> 
    <steps> 
     <step id="1" desc="Description1" /> 
     <step id="3" desc="Description3" /> 
<product> 

答えて

0

XMLは大丈夫かもしれないが、あなたはSQLiteのカスタムコンフィギュレータまたは単にSQLiteのエディタを使用することができます。

構成を構成して変更する必要がある場合、SQLのようなソリューションが大きくなるとすぐに、構成の変更をより適切に実行できるようになるためです。

構成スキーマが時々異なると思われる場合は、他のnoSQLオプションを調べることもできますが、SQLiteと同じように移植性がありません。

xmlファイルで構成可能な製品で作業していた経験から、xmlファイルが大きくなりxmlファイルが太くなったらすぐに問題が発生することがわかります。また、正規表現を使用して複数の場所で構成を更新することは、クールではありません。私たちは現在、SQLiteのようなソリューションに移行することを楽しみにしています。

1

Moqを見てみましょう:することができます簡単にセットアップのようないくつかのテスト可能なシナリオ、:

var mock = new Mock<ILoveThisFramework>(); 

// WOW! No record/replay weirdness?! :) 
mock.Setup(framework => framework.DownloadExists("2.0.0.0")) 
    .Returns(true); 

// Hand mock.Object as a collaborator and exercise it, 
// like calling methods on it... 
ILoveThisFramework lovable = mock.Object; 
bool download = lovable.DownloadExists("2.0.0.0"); 

// Verify that the given method was indeed called with the expected value at most once 
mock.Verify(framework => framework.DownloadExists("2.0.0.0"), Times.AtMostOnce()); 

私もアサーションの柔軟性のために、FluentAssertionsと一緒にそれを使用したいとあなたは基本的にテストを読むことができ、

string actual = "ABCDEFGHI"; 
actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9); 

これらの例はそれぞれのホームページからのものです。

関連する問題