gpt4 book ai didi

c# - 当我的代码依赖于 redis 时,我应该如何编写测试

转载 作者:IT王子 更新时间:2023-10-29 06:09:21 25 4
gpt4 key购买 nike

最近我对编写涵盖测试场景的良好单元测试很好奇。

我有这样的方法

public bool IsObjPropError(int p_id)
{
var dataList = RedisCache.GetObjectListByPropid(p_id)

if ( dataList != null || DataListCheckingUsingLinqReturnsBoolean )
return true;
return false;
}

所以我的问题是:

我如何编写涵盖测试用例的测试,因为我的函数依赖于 Redis 来返回数据。因此,在我可以继续下一步之前,我的 redis 需要有这样的数据(要么使用 system n run set p_id = the data i created in system 创建数据)。

我试图避免在系统 n 硬编码 p_id 中创建数据。

有没有更好的办法? .

最佳答案

要考虑的一种方法是将与 Redis 交互的代码放入实现 ITalkingToRedisTalkingToRedis 类中。

让您的代码使用 ITalkingToRedis(最好通过 IoC/DI 注入(inject) - 例如 Autofac)。

然后在单元测试中模拟/ stub ITalkingToRedis(使用 NSubstitute 或类似的东西)。

这种通用模式几乎适用于所有事物(无论是 Redis、文件系统、Kafka 还是其他任何东西)。

关于c# - 当我的代码依赖于 redis 时,我应该如何编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094543/

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