在許多情況下,我寫有受保護的虛擬方法的代碼提供接縫(協助單元測試):如何提供一個乾淨實現的接縫
public class TemporaryStorage
{
public TemporaryStorage()
{
this.RootPath = Path.Combine(this.GetEnvironmentPath, Path.GetRandomFileName());
}
public string RootPath { get; private set; }
protected virtual string GetEnvironmentPath
{
get { return LocalStorage.GetEnvironmentPath(); }
}
}
然後,在測試套件,我將從該類派生併爲GetEnvironmentPath()提供自定義實現。
而不是在測試套件內創建派生類,是一種更好的方法嗎?我可以使用MOQ完成相同的結果(爲GetEnvironmentPath提供替代實現)嗎?
問候,