Я работаю над написанием юнит-тестов должным образом, и мне интересно, является ли это плохой техникой для проверки результата тестируемого метода путем вызова другого метода для проверки результата?
т. в приведенном ниже примере я могу только проверить, что вызов метода StoreObject был успешным (т. е. объект, хранящийся в кеше), вызвав либо свойство FetchObject, либо свойство HasCachedObjects, оба из которых содержат логику, которая должна тестироваться отдельно. Что бы вы сделали в этом случае, если результат скрыт от публичного API?
У меня есть класс Cache:
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;
}
}