在C#单元测试中替代一种方法行为

在C#单元测试中替代一种方法行为,c#,unit-testing,mocking,C#,Unit Testing,Mocking,早上好 在C#单元测试中,我只需要替换一个真实实例类(不是模拟类)的一个方法的行为 这可能吗 谢谢 创建一个子类并重写此方法 public class BaseClass { public virtual void SomeMethod() { Console.WriteLine("Hi"); } } // Derived Class public class DerivedClass : BaseClass

早上好

在C#单元测试中,我只需要替换一个真实实例类(不是模拟类)的一个方法的行为

这可能吗


谢谢

创建一个子类并重写此方法

public class BaseClass 
{ 
  
    public virtual void SomeMethod() 
    { 
        Console.WriteLine("Hi"); 
    } 
} 
  
// Derived Class 
public class DerivedClass : BaseClass 
{ 
  
    public override void SomeMethod()  
    { 
        Console.WriteLine("Hello"); 
    } 
}
如果方法If interest没有标记为virtual,并且您无法更改代码,那么您仍然可以隐藏它(我个人永远不会这么做):


通常,您将使用不同的参数创建重写方法。
public class BaseClass 
{ 
  
    public void SomeMethod() 
    { 
        Console.WriteLine("Hi"); 
    } 
} 
  
// Derived Class 
public class DerivedClass : BaseClass 
{ 
  
    public new void SomeMethod()  
    { 
        Console.WriteLine("Hello"); 
    } 
}