.Net Core的简单单元测试基于Mock

前一段时间刚刚进入使用 .net Core 的公司进公司的第一个任务就是写单元测试,分享一下怎么使用Moq做简单的单元测试。
1.首先先建立一个测试项目
在这里插入图片描述2.引用安装需要的依赖项和包,还有对应测试的项目

在这里插入图片描述

3.开始写单元测试,单元策略粗略的分为三个部分(Arrange/Act/Assert)

3.1:首先先要使用MOCk来模拟测试方法需要的参数,这一步为 Arrange;
    简单的模拟
      var mock = new Mock<Object>();
   模拟返回的数据
  mock .Setup(x => x.方法(It.IsAny<string>()(备注这里是模拟的方法参数))).Returns(Task.FromResult(这个方法会返回的参数));

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042810512498.png)
  
3.2:在模拟完请求参数后就要开始调用测试的方法了(ACT),传入测试方法需要的相应参数 

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428113817151.png)

3.3:最后就是对方法的测试成功进行判断(Assert)

	简单的对返回参数进行判断
	 Assert.True(httpClientInvoked);
Assert里有很多种判断方法,可以自己慢慢看

 判断测试方法里的子方法是否被调用,下面的方法是判断是否至少执行一次
 mock(模拟方法名).Verify(fake => fake.AddAsync(It.IsAny<EvaluationEntity>()), Times.AtLeastOnce());
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428114334530.png)

最后再说一下如果测试的方法里需要抛出错误怎么判断,由于会抛异常所有要写在一起
 //Act & Assert
        var ex = await Assert.ThrowsAsync<HFQInternalServerException>(async () => await srv.CommentAsync("tran1", "1", "1", "admin", "305", "测试留言"));
        Assert.Equal(ErrorMessages.RemarkSubmitError.ToString(), ex.Code);

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428114442581.png)

4:补充一个模拟HttpClient的方法
在这里插入图片描述
以上为个人的一点使用经历,理解有问题请指出修改

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值