私はServiceStackサービスの簡単な単体テストを作成しようとしています。オンラインでテストを行っており、ここではいくつかのスレッドを使用しています。これは、私が達成しようとしているほとんどの詳細を含むメインスレッドです-ServiceStackを使用したHTTPRequestヘッダーの単体テスト。
ただし、IDbConnectionオブジェクトをサービスに挿入する際に問題が発生します。webmethodでは、OrmLiteのGetDictionaryメソッドを使用して辞書オブジェクトにデータが入力されます。しかし、GetDictionaryは拡張メソッドであるため、モックを作成することはできません。
private Mock<IDbConnection> _dbConnectionMock;
private Dictionary<string, string> _nameValuePairs;
[SetUp]
public void SetUp()
{
_dbConnectionMock = new Mock<IDbConnection>();
_nameValuePairs = new Dictionary<string, string>()
{
{"name","test"},
{"Updatedby", "5/23/12 7:00:15 AM"},
{"Address", "212 Adam St."}
};
}
試験方法で
var service = new CustomerLookupService(_dbConnectionMock.Object);
var response = (HttpResult)service.Any(new CustomerLookup { name = "test" });
//assert statements
GetDictionaryメソッドをモックできない場合は、DBにヒットするWebメソッドを呼び出すこともできます。そのためには、AppHostを作成する必要があります。