an diesem Code Werfen Sie einen Blick:Moq Kosten Methode nicht wie erwartet funktioniert
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);
Wie Sie sehen können, ich bin die Rückkehr von StringGetAsync
zu einem einfachen nicht leer/Null-String zu setzen.
Mein Problem ist, dass innerhalb der caching.GetKeyAsync
der Aufruf dieser Methode ein Null-Ergebnis zurückgibt. Was mache ich hier falsch?
-Code für GetKeyAsync:
result = _thirdLevelCache.StringGetAsync(key, CommandFlags.None).ContinueWith((prev) =>
{
string res = null;
if (!prev.Result.IsNull)
{
res = prev.Result.ToString();
}
return res as object;
});
sorry für die Verspätung, aber es hat nicht funktioniert ... – Leonardo
lustig, wenn ich die 'ReturnsAsync (val) ändern' für 'ThrowsAsync (new Exception()) 'Ich bekomme auch keine Ausnahme ... – Leonardo
Ich schaffte es, es funktioniert das Ersetzen der Setup' It.IsAny() ', für" It.IsAny () "... –
Leonardo