C# 模拟局部引用变量

C# mock local reference variable

有什么方法可以在不重构任何东西的情况下模拟出 MyObject obj 吗?

public class BadClass{

   public int Process(){
      MyObject obj=new MyObject();
      return obj.doSomething(); 
   }

}

这确实有效,但有趣的是似乎只有我在使用 msfakes。谈到 java 这样的事情,有很多高质量的文章,但是在 c# 中,MS 网站上只有一篇展示如何模拟静态日期。

 [TestClass]
    public class UnitTest1
    {
        private BadClass badClass=new BadClass();

        [TestMethod]
        public void TestMethod1()
        {
            using (ShimsContext.Create())
            {
                SampleCCProject.Fakes.ShimMyObject.AllInstances.doSomething =
                   @class =>
                    {
                        Console.WriteLine("Hello");
                        return 9;
                    };

                Assert.AreEqual(badClass.Process(), 9);
            }
        }
    }