Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#模拟局部参考变量_C#_Unit Testing_Moq - Fatal编程技术网

C#模拟局部参考变量

C#模拟局部参考变量,c#,unit-testing,moq,C#,Unit Testing,Moq,有没有办法模仿MyObject对象而不重构任何东西 public class BadClass{ public int Process(){ MyObject obj=new MyObject(); return obj.doSomething(); } } 这确实起到了作用,但有趣的是,似乎只有我在使用msfakes。当谈到java在这方面的应用时,有上百篇高质量的文章,但在c#中,MS网站上只有一篇展示如何模拟静态日期的文章 [TestClass

有没有办法模仿MyObject对象而不重构任何东西

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);
            }
        }
    }

这确实起到了作用,但有趣的是,似乎只有我在使用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);
            }
        }
    }

简短回答-否。微软假货could@404整天在互联网上搜索,没有一个例子/样本。如果你知道一个帖子,你能和别人分享吗?Thanks@Imran这里有一个链接,有一个很好的解释可以帮助您开始:。您基本上想要的是在单元测试中创建一个
ShimsContext
,并更改
MyObject
类的行为。e、 g.
ShimMyObject.AllInstances.doSomething=(){//new behavior}
@404谢谢,成功了。你能添加一个答案,这样我就可以把它标记为正确的吗?简短答案-否。Microsoft fakescould@404整天在互联网上搜索,没有一个例子/样本。如果你知道一个帖子,你能和别人分享吗?Thanks@Imran这里有一个链接,有一个很好的解释可以帮助您开始:。您基本上想要的是在单元测试中创建一个
ShimsContext
,并更改
MyObject
类的行为。e、 g.
ShimMyObject.AllInstances.doSomething=(){//new behavior}
@404谢谢,成功了。你能加一个答案吗?这样我就可以把它标对了?