gpt4 book ai didi

c# - 单元测试 : Using another method to check the method under test ran correctly

转载 作者:行者123 更新时间:2023-11-30 15:11:52 26 4
gpt4 key购买 nike

我正在努力正确地编写单元测试,我想知道通过调用另一个方法来验证结果来测试被测方法的结果是否是一种糟糕的技术?

即。在下面的示例中,我只能通过调用 FetchObject 或 HasCachedObjects 属性来检查 StoreObject 方法调用是否成功(即对象存储在缓存中),这两个属性都包含应单独测试的逻辑。如果结果对公共(public) API 隐藏,您会怎么做?

我有一个缓存类:

public class Cache {

private Dictionary<string, object> _Cache = null;

public bool HasCachedObjects {
get {
if (_Cache.Count > 0) {
return true;
} else {
return false;
}
}
}

public Cache() {
_Cache = new Dictionary<string,object>();
}

public void StoreObject(string key, object obj) {
_Cache[key] = obj;
}

public object FetchObject(string key) {
if (_Cache.ContainsKey(key)) {
return _Cache[key];
}

return null;
}
}

最佳答案

不要将测试用例视为测试方法;将其视为测试一个功能单元(或者可能是一个用例)。

因此您的测试可能是 StoreObject_WhenSuccessful_AddsToCache 或类似的。

是的,我会通过公共(public) API 确认测试。

关于c# - 单元测试 : Using another method to check the method under test ran correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837620/

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