0

私はコードセグメントを持っています:

var requestMock = new Mock<HttpRequestBase>();
var queryString = new NameValueCollection();
queryString["abc"] = "123";
queryString["qwe"] = "456";
queryString["yui"] = "678";
...
requestMock.SetupGet(rqst => rqst.QueryString).Returns(queryString);

ここで、上記のセグメントをメソッドとして記述したいと思います。

var requestMock = GetRequestMock(???);

クエリ文字列のキー/値を送信するつもりです。これは何でもかまいません。また、k/v ペアの数も任意です。

public Mock<HttpRequestBase> GetRequestMock(???)
{
var requestMock = new Mock<HttpRequestBase>();
....
requestMock.SetupGet(rqst => rqst.QueryString).Returns(queryString);
return requestMock;
}

これを効率的かつ簡単に行うための最良の方法は何でしょうか?

4

1 に答える 1

2

One way would be to use a Dictionary:

public Mock<HttpRequestBase> GetRequestMock(Dictionary<string, object> queryParms)
{
    var queryString = new NameValueCollection();
    foreach (KeyValuePair<string, object> kvp in queryParms)
    {
        queryString[kvp.Key] = Convert.ToString(kvp.Value);
    }

    ...
}

and then you can call it like this:

GetRequestMock(new Dictionary<string, object> { { "abc", "123" }, { "qwe", "456" } } );
于 2013-04-10T17:38:29.107 に答える