gpt4 book ai didi

c# - 根据其他方法输入返回一个值

转载 作者:行者123 更新时间:2023-11-30 14:10:20 25 4
gpt4 key购买 nike

我正在尝试模拟一个非常简单(简化)的接口(interface),它基本上是缓存服务的接口(interface):

public interface ICache
{
T Get<T>(String key);
T Set<T>(String key, T value); // return T on success or null on fail
}

我想通过以下方式使用 Moq 来模拟这个:

  • 如果我使用尚未设置的 key 调用 Get,它应该返回 null
  • 如果我用键“x”和值“y”调用 Set然后调用 Get键'x',它应该返回'y'
  • 如果我用值“z”覆盖键“x”,然后调用 Get对于键“x”,它应该返回新值“z”而不是“y”。

我知道我可以创建一个实现接口(interface)并使用字典的假对象,但我想知道这是否可以使用 Moq 轻松完成。谢谢!

最佳答案

对我来说,您所描述的行为暗示了一个基础字典。但是对于简单的单元测试,我可能只调用两次 Setup 来管理这些期望。

mockCache.Setup(c => c.Get(It.Is<string>(x))).Returns(y);

//...other code
mockCache.Object.Set(x, z);
mockCache.Setup(c => c.Get(It.Is<string>(x)).Returns(z);
//...other code

关于c# - 根据其他方法输入返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24493123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com