c# - 如何在单元测试项目中创建新对象?
问题描述
我有一个使用接口的类。我想在我的单元测试中使用这个类本身,但我不知道该怎么做。
我的代码:
public class Store
{
private readonly ICache _Cache;
public CacheStore(ICache cache)
{
_Cache= cache;
}
}
现在如何使用 CacheStore 类?
[Test]
public void test_method()
{
var options = new CacheStore(??);
}
解决方案
您需要模拟您的 ICache 接口。
说如果你有商店类是这样定义的
public class Store
{
private readonly ICache _Cache;
public Store(ICache cache)
{
_Cache = cache;
}
}
在您的单元测试中,您必须创建一个 Moq 对象ICache
Mock<ICache> _icache = new Mock<ICache>();
您可以Store
使用 Moq 对象创建对象:
Store _s = new Store(_icache.Object);
之后,您可以使用 Moq 的 SetUp 方法设置必填字段。如果您是新的 Mocking,请参考以下链接。
推荐阅读
- angularjs - ControllerAs 模式:var vm = this - 自 AngularJS 1.7 更新后未定义范围
- ssas - 高级关系引擎中的错误。处理维度时事务中止
- amazon-web-services - 如何使用 FTP 将我的 BitBucket 存储库克隆到我的网络主机?
- java - 如何从 Volley 请求响应中解析大型 JsonArray
- .htaccess - 利用脚本 SRC 上的浏览器缓存
- javascript - datepicker 不是 bootstrap 4.1 中的函数
- wordpress - 如何使用 wp_query 排序帖子列表?
- reactjs - 跨域请求被阻止,缺少标头 Access-Control-Allow-Origin
- python - 在 Pandas 中如何反转十进制符号?
- excel - Excel 2016 - VBA - 数据透视表 - 如果包含“(空白)”,则从复制行中排除