1
這個代碼看看不工作:起訂量返回方法如預期
var thirdLevelCacheMock = new Mock<IDatabase>();
RedisValue val = "not empty or null string";
thirdLevelCacheMock.Setup(m => m.StringGetAsync(It.IsAny<string>(), It.IsAny<CommandFlags>())).Returns(Task.FromResult(val));
CachingInfrastructure caching = new CachingInfrastructure();
caching._thirdLevelCache = thirdLevelCacheMock.Object;
var operation = caching.GetKeyAsync("bla", CacheLevel.Any);
Assert.DoesNotThrow(() => { operation.Wait(); });
Assert.IsNotNull(operation.Result);
正如你可以看到,我設置的StringGetAsync
一個簡單不是空/空字符串返回。
我的問題是,在caching.GetKeyAsync
中,對該方法的調用正在返回空結果。我在這裏做錯了什麼?
代碼GetKeyAsync:與起訂量的ResturnsAsync
result = _thirdLevelCache.StringGetAsync(key, CommandFlags.None).ContinueWith((prev) =>
{
string res = null;
if (!prev.Result.IsNull)
{
res = prev.Result.ToString();
}
return res as object;
});
抱歉耽擱,但它沒有工作...... – Leonardo
有趣,如果我改變了'ReturnsAsync(VAL)''爲ThrowsAsync(新的異常()) '我也沒有例外... – Leonardo
我設法讓它工作,替換設置'It.IsAny()',爲「It.IsAny ()」... –
Leonardo