首先创建
使用mock 外部依赖一般用Mock 模拟
下载包
例如
3.1:首先先要使用MOCk来模拟测试方法需要的参数,这一步为 Arrange;
简单的模拟
var mock = new Mock
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042810512498.png)
3.2:在模拟完请求参数后就要开始调用测试的方法了(ACT),传入测试方法需要的相应参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428113817151.png)
简单的对返回参数进行判断
Assert.True(httpClientInvoked);
Assert里有很多种判断方法,可以自己慢慢看
判断测试方法里的子方法是否被调用,下面的方法是判断是否至少执行一次
mock(模拟方法名).Verify(fake => fake.AddAsync(It.IsAny
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428114334530.png)
最后再说一下如果测试的方法里需要抛出错误怎么判断,由于会抛异常所有要写在一起
//Act & Assert
var ex = await Assert.ThrowsAsync
Assert.Equal(ErrorMessages.RemarkSubmitError.ToString(), ex.Code);
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200428114442581.png)
,单元测试永远都只关注需要测试的方法内部的逻辑实现,至于外部依赖方法的测试,则应该放在另一个专门针对这个方法的单元测试用例中。弄清楚这个问题,我们才能更加理解另一个单元测试不可缺少的框架——Mock框架,在我们写的测试中,应该忽略外部依赖具体的实现,而是通过模拟该接口方法来显示的指定返回值,从而降低该返回值对于当前单元测试结果的影响,而 Mock 框架(例如最常用的Moq),刚好可以满足我们对于接口的模拟需求。
**参考文章 https://www.cnblogs.com/xboo/p/11811838.html**
其他
using Auth.Application.IService;
using Auth.Application.Service;
using Auth.Model;
using Auth.Model.ViewModel;
using Auth.UI;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using System;
using System.Collections.Generic;
namespace UnitTest
{
[TestClass]
public class UnitTest1
{
private IUserService _controller;
[TestMethod]
public void TestMethod1()
{
var server = new TestServer(WebHost.CreateDefaultBuilder().UseStartup<Startup>());
\_controller = server.Host.Services.GetService<IUserService>();
var ss = \_controller.UserList(1,10).Result.Item1;
#if DEBUG
//创建一个计时器,用来记录程序的运行时间
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();//开始计时
//var search1 = await \_elasticsearch.QueryAsync(KeyWord, pageIndex, pageSize);
sw.Stop();//结束计时
var time = sw.Elapsed;
#endif
Assert.IsTrue(true);
//Assert.AreEqual(true,true);
}
}
}
参考
https://www.cnblogs.com/yubaolee/archive/2018/07/07/DotNetCoreUnitTest.html
手机扫一扫
移动阅读更方便
你可能感兴趣的文章