我有一個測驗,有時會比較兩個串列。
IsEqual(List<string> a, List<string> b, ComparisonConfig conf)
如果 List A 等于 List B,則上述函式回傳true結果,否則回傳false結果。
在測驗中,我需要設定此函式,以便在呼叫時回傳正確的結果。
_service
.Setup(x => x.IsEqual(It.IsAny<List<string>>(), It.IsAny<List<string>>(), null))
.Returns(Result.Ok(true));
現在,即使串列不相等,它也總是回傳 true。
Result.Ok(true)所以問題是當引數相等時如何讓這個設定回傳,Result.Ok(false)否則。
uj5u.com熱心網友回復:
Returns有幾個多載接受Func不同數量的引數,因此可以在回傳值時訪問呼叫引數:
_service.Setup(x => x.IsEqual(It.IsAny<List<string>>(), It.IsAny<List<string>>(), null))
.Returns((List<string> l1, List<string> l2, ComparisonConfig c) =>
{
if(...) // some logic with l1 and l2
{
return Result.Ok(true);
}
return Result.Ok(false);
});
使用的委托Returns應匹配正在設定的成員的簽名和回傳型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460505.html
