在代碼中,我需要檢測,結果發現這樣的外部依賴:如何通過Microsoft Fakes使用ConcurrentDictionary(C#)來長時間地依賴外部依賴?
var something = GConfig.SConfig[Type.ServiceType1].Names;
這部分的代碼是這樣的:
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
namespace Class
{
public sealed class GConfig
{
public ConcurrentDictionary<Type, GConfigIt> SConfig { get; set; }
public GConfig()
{
SConfig = new ConcurrentDictionary<Type, GConfigIt>();
throw new InvalidOperationException("Error");
}
}
public enum Type
{
ServiceType1,
ServiceType2
}
public class GConfigIt
{
public List<string> Names { get; set; }
public GConfigIt()
{
Names = new List<string>();
}
}
}
我需要墊片,它依賴,但對我自己的我無法找到完整的解決方案,只是部分:
對於GConfigIt(和勻場名稱):Fakes.ShimGConfigIt.AllInstances.NamesGet
適用於墊片SConfig:Fakes.ShimGConfig.AllInstances.SConfigGet
但是我找不到連接,如何充分墊片。
P.S.我只是一個測試人員,不能改變現有的代碼。爲了做出改變,我需要說服開發人員這樣做(即爲GConfig提供額外的接口),但他們必須確保它不僅僅是用於「簡單測試」或「測試測試」的改變,而且他們確實需要這樣做。