();mockClubRepository.Setup(mr=>mr.GetById(It.IsAny()))2.Moq中怎樣返回空(HowtoreturnnullinMoq):mockRepository.Setup(mr=>mr" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Moq的使用心得

系統(tǒng) 3042 0

Moq的使用心得

  1. 1.Moq Mock Repository 時(shí)最好是 Mock Repository 的接口,這樣會(huì)避免不知名的錯(cuò)誤。

                
                  var
                
                 mockClubRepository = 
                
                  new
                
                 Mock<IClubRepository>
                
                  ();
    
    
    
    mockClubRepository.Setup(mr 
                
                => mr.GetById(It.IsAny<Guid>()))
              

    2.Moq? 中怎樣返回空 (How to return null in Moq):

                mockRepository.Setup(mr => mr.GetItems()).Returns(() => 
                
                  null
                
                );
              

    這種寫法很常用,比如返回一個(gè)空的List

    mockRepository.Setup(mr => mr.GetItems()).Returns(() => new ? List<Object>);

    ?3. 怎樣 Mock 一個(gè) IsValid == false? ModelState

    很簡(jiǎn)單: UsersController.ModelState.AddModelError("username","Bad username");? 添加個(gè) ModelError 就可以改變 ModelState IsValid 屬性了。

    4.How to Mock User.Identity.Name

    ?

    Testing controller Action that uses User.Identity.Name

    ?

    ControllerCreateControllerForUser( string ? userName)
    {
    ???? var ? mock = newMock<ControllerContext>();
    ???? mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName);
    ???? mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns( true );
    ?
    ???? var ? controller = newSomeController();
    ???? controller.ControllerContext = mock.Object;
    ?
    ???? return ? controller;
    }

    5.? 有時(shí)候需要單元測(cè)試 文件上傳 ,那么怎么去 Mock 一個(gè)上傳的文件呢?

    原理很簡(jiǎn)單,只需要 Mock HttpContext.Request.Files的一些需要的屬性即可,例如:

    View Code

    ASP.NET MVC 中,上傳的文件都是放在HttpPostedFileBase這個(gè)對(duì)象中,我們可以直接 Mock 這個(gè)對(duì)象,對(duì)保存文件的方法進(jìn)行單元測(cè)試

    View Code

    [TestMethod]

    public void TestUpLoadFile()

    {

    var mockFile = new Mock<HttpPostedFileBase>();

    mockFile.Setup(d => d.FileName).Returns("test.txt");

    mockFile.Setup(d => d.ContentLength).Returns(100);

    mockFile.Setup(d => d.InputStream).Returns(new MemoryStream());

    ?

    const string uploadsFolder = "D:\\UploadedFiles";

    Domain.DMS.File file = _fileService.UploadedFile(mockFile.Object, uploadsFolder);

    ?

    Assert.AreEqual("test.txt", file.FileName);

    Assert.AreEqual(100, file.FileSize);

    Assert.AreEqual("txt", file.FileExtension);

    }

    ?

    ? ? ?

?
?
?
標(biāo)簽:? Tool ,? Moq

Moq的使用心得


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 永定县| 巩留县| 澄迈县| 望江县| 民丰县| 高台县| 同江市| 体育| 顺平县| 特克斯县| 咸阳市| 新宁县| 柘荣县| 墨竹工卡县| 嘉善县| 蒲江县| 沽源县| 平度市| 九龙县| 房产| 扎鲁特旗| 凤冈县| 报价| 河西区| 东台市| 韶山市| 内黄县| 阳山县| 忻城县| 六枝特区| 靖西县| 成都市| 商城县| 惠来县| 乐安县| 区。| 巴塘县| 林口县| 清苑县| 谢通门县| 建阳市|