2017-05-05 63 views
1

我正在測試圍繞WebClient的包裝。我想在調用UploadString的時候檢查,QueryString屬性被設置爲一個特定的值。整個方法完成後,我不需要檢查QueryString值。Moq在調用方法時驗證屬性

mockedWebClient.Setup(w=>w.UploadString("url2","POST","bodyyy")).Return("response"); 
mockedWebClient.Setup(w=>w.QueryString).Return(new NameValueCollection()); 

testibject.SomeMethod(); 

// Verify method was called 
mockedWebClient.Verify(w=>w.UploadString("url2","POST","bodyyy"); 
// Also verify QueryString is set at the time UploadString is called??? 
+0

什麼是QueryString屬性? –

+0

WebClient。我將爲它添加設置 – 1283822

回答

1

回調

可以使用Setup時使用Callback方法。例如:

NameValueCollection queryString = new NameValueCollection(); 

mockedWebClient.Setup(w=>w.QueryString).Return(queryString); 

bool isExpected = false; 

mockedWebClient 
    .Setup(w=>w.UploadString("url2","POST","bodyyy")) 
    .Callback(() => isExpected = queryString["SomeKey"] == "SomeValue") 
    .Return("response"); 

testibject.SomeMethod(); 

Assert.IsTrue(isExpected);