日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

.NET使用Moq進行單元測試

瀏覽:466日期:2022-06-08 14:04:30

本篇體驗Moq的一些基本用法。首先通過NuGet安裝Moq。

模擬方法的返回值

    public class HelperClass    {public virtual Boolean IsEnabled(){    throw new Exception();}    }    [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    var mock = new Mock<HelperClass>();    mock.Setup(x => x.IsEnabled()).Returns(true);    Assert.AreEqual(mock.Object.IsEnabled(),true);}    }
  • Moq模擬的方法一般是virtual虛方法,接口方法
  • mock.Object是指HelperClass的實例

模擬方法后執(zhí)行回調(diào)函數(shù)

   [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    string temp = "";    var mock = new Mock<HelperClass>();    mock.Setup(x => x.IsEnabled()).Returns(true).Callback(() => { temp = "success"; });    Assert.AreEqual(mock.Object.IsEnabled(),true);    if (temp == "success")    {//TODO    }}    }
  • 執(zhí)行Return方法后,執(zhí)行Callback回調(diào)方法,接收的參數(shù)類型是委托

模擬方法依次返回多個值

    [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    var mock = new Mock<HelperClass>();    mock.SetupSequence(x => x.IsEnabled()).Returns(true).Returns(false);        Assert.AreEqual(mock.Object.IsEnabled(),true);    Assert.AreEqual(mock.Object.IsEnabled(), false);}    }
  • SetupSequence方法可以為方法返回多個值

如果把以下2句:

Assert.AreEqual(mock.Object.IsEnabled(),true);
Assert.AreEqual(mock.Object.IsEnabled(), false);

顛倒一下順序,變成:

Assert.AreEqual(mock.Object.IsEnabled(), false);
Assert.AreEqual(mock.Object.IsEnabled(),true);

結(jié)果,測試不通過。因為SutupSequence返回方法返回值的時候是有順序的。

模擬第二次調(diào)用方法返回異常

    [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    var mock = new Mock<HelperClass>();    mock.SetupSequence(x => x.IsEnabled()).Returns(true).Throws(new Exception());        Assert.AreEqual(mock.Object.IsEnabled(),true);    Assert.AreEqual(mock.Object.IsEnabled(), true);}    }
  • 通過Throws方法,在第二次調(diào)用IsEnable()方法時拋出異常。

直接返回被模擬方法的原始返回值

    public class HelperClass    {public virtual Boolean IsEnabled(){    throw new Exception();}    }    [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    var mock = new Mock<HelperClass>();    mock.CallBase = true;    mock.SetupSequence(x => x.IsEnabled()).CallBase();    Assert.AreEqual(mock.Object.IsEnabled(), true);}    }

在被模擬的HelperClass類中,IsEnabled方法內(nèi)部拋出異常。當(dāng)把Moq實例的CallBase屬性設(shè)置為true,并調(diào)用CallBase方法,可在測試方法中直接返回被模擬類中方法的原始返回值。

模擬泛型類

    public class HelperClass<T> where T : class     {public virtual Boolean IsEnabled(){    throw new Exception();}    }    public class Sample{}    [TestClass]    public class UnitTest1    {[TestMethod]public void TestMethod1(){    var mock = new Mock<HelperClass<Sample>>();    mock.SetupSequence(x => x.IsEnabled()).Returns(true);    Assert.AreEqual(mock.Object.IsEnabled(), true);}    } 

到此這篇關(guān)于.NET使用Moq進行單元測試的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

標(biāo)簽: ASP.NET
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品久久一区| 奇米777国产一区国产二区| 国产精品99久久免费| 超碰成人av| 91精品国产乱码久久久久久久 | 福利片在线一区二区| 肉色欧美久久久久久久免费看 | www在线观看黄色| 免费看av不卡| 国产视频一区在线观看一区免费| 伊人久久成人| 水野朝阳av一区二区三区| 国产精品久久久网站| 亚洲精品福利| 国产一区福利| 国产色综合网| 日本午夜精品| 福利一区二区免费视频| 国产日韩欧美一区| 鲁大师影院一区二区三区| 欧洲在线一区| 国产精品毛片久久久| 99在线观看免费视频精品观看| 男人操女人的视频在线观看欧美| 亚洲精品美女| 国产精品亲子伦av一区二区三区| 久久精品人人| 国产成人精品免费视| 国产精品av久久久久久麻豆网| 丁香六月综合| 国产精品午夜一区二区三区| 日韩av有码| 国产精品久久| 韩国精品主播一区二区在线观看| 国产亚洲欧美日韩精品一区二区三区| 肉色欧美久久久久久久免费看| 国产欧美日韩免费观看| 日韩一区欧美二区| 91成人精品视频| 国产精品一在线观看| 亚洲欧美视频| 日韩高清不卡| 捆绑调教日本一区二区三区| 国产精品九九| 久久久久久色| 精品精品久久| 日韩av中文在线观看| 麻豆一区在线| 日韩综合小视频| 视频一区二区三区中文字幕| 国产精品一卡| 国产精品永久| 五月激情久久| 久久亚洲在线| 91伊人久久| 日韩一区三区| 日韩精品中文字幕一区二区| 蜜臀av国产精品久久久久| 欧美成人综合| 日韩欧美一区二区三区在线观看| 在线一区免费| 欧美激情aⅴ一区二区三区| 久久精品国语| 久久久久99| 97精品国产一区二区三区| 97国产成人高清在线观看| 久久三级中文| 久久精品影视| 91中文字幕精品永久在线| 国内一区二区三区| 欧美日韩精品一本二本三本| 久久免费黄色| 91欧美在线| 国产综合婷婷| 91欧美在线| 国产精品99久久精品| 欧美日韩一区二区三区视频播放| 午夜久久免费观看| 亚洲在线观看| 欧美成人精品三级网站| 欧美日韩视频一区二区三区| 在线国产日韩| 蜜桃av一区| 欧美日一区二区三区在线观看国产免 | 亚洲国产日韩欧美在线| 欧美日韩亚洲国产精品| 日本久久综合| 久久最新视频| 国产在线日韩精品| 成人啊v在线| 国产在线观看www| 欧美日韩精品免费观看视完整| 国产精品97| 精品一区二区三区亚洲| 欧美.日韩.国产.一区.二区 | 美女久久99| 涩涩涩久久久成人精品| 三上悠亚国产精品一区二区三区 | 99在线观看免费视频精品观看| 男人的天堂亚洲一区| 三上亚洲一区二区| 麻豆国产91在线播放| 亚洲开心激情| 怡红院精品视频在线观看极品| 午夜精品免费| 99精品在线免费在线观看| 综合视频一区| 99久久夜色精品国产亚洲狼| 欧美偷窥清纯综合图区| 三级欧美在线一区| 国产精品久久久久久久久久齐齐 | 国产劲爆久久| 亚洲2区在线| 久久精品国产大片免费观看| 鲁大师成人一区二区三区| 国产精东传媒成人av电影| 国内亚洲精品| 久久免费国产| 爽爽淫人综合网网站| 日本不卡中文字幕| 国产一区二区三区不卡av| 久久国产精品99国产| 欧美国产小视频| 成人自拍av| 色婷婷久久久| 欧美1区2区3区| 老牛国产精品一区的观看方式| 国产日韩一区| 国产欧美自拍| 欧美www视频在线观看| 高清一区二区三区av| 国精品一区二区| 香蕉精品999视频一区二区| 国产suv精品一区| 欧美日韩夜夜| 伊人久久一区| 久久国产成人午夜av影院宅| 天堂成人国产精品一区| 成午夜精品一区二区三区软件| 亚洲精品九九| 99热精品久久| 欧美啪啪一区| 国产精品日本欧美一区二区三区| 综合激情婷婷| 麻豆国产精品视频| 香蕉久久国产| 久久只有精品| 欧美sm一区| 欧美一级二级视频| 欧美视频精品全部免费观看| 老司机免费视频一区二区三区| 中文字幕视频精品一区二区三区| 中文字幕一区二区三区四区久久| 亚洲精品婷婷| 久久美女性网| 亚洲精品第一| 成人一区而且| 99精品在线观看| 鲁大师精品99久久久| 欧美综合另类| 久久精品凹凸全集| 亚洲午夜在线| 婷婷丁香综合| 精品久久中文| 蜜臀av免费一区二区三区| 国产亚洲人成a在线v网站| 日韩精品亚洲aⅴ在线影院| 免费在线视频一区| 亚洲精品在线影院| 日韩精品视频网站| 久久99久久久精品欧美| 久久婷婷一区| 久久男人av| 久久久精品国产**网站| 樱桃视频成人在线观看| 秋霞国产精品| 亚洲精品韩国| 午夜亚洲福利| 久久影院资源站| 久久九九精品| 四虎精品永久免费| 亚洲最新无码中文字幕久久| 91精品国产自产在线观看永久∴| 首页国产欧美久久| 精品久久影院| 日韩视频精品在线观看| 免费不卡在线观看| 国产精品黑丝在线播放| 人人精品亚洲| 国产丝袜一区| 欧洲毛片在线视频免费观看| 国产日韩在线观看视频| 欧美日韩精品一区二区视频| 人人爱人人干婷婷丁香亚洲| 日本欧洲一区二区| www成人在线视频| 国产精品va| 视频一区二区三区中文字幕| 亚洲第一区色| 丝袜诱惑一区二区|