【c# – 如何正确编写异步XUnit测试?】教程文章相关的互联网学习教程文章

c#-在无限序列上创建NUnit测试【代码】

我有这种方法:public static IEnumerable<T> Jumping<T>( this IEnumerable<T> sequence, int step) {if(sequence==null)throw new ArgumentNullException();if(step<0)throw new ArgumentOutOfRangeException();var s = sequence.GetEnumerator();for (int i = 0; i <= step; i++){if (!s.MoveNext()){s.Reset();s.MoveNext();}if (i == step){i = 0;yield return s.Current;}} }请求是创建具有无限序列的NUnit测试,我该怎么办?...

c#-用Moq测试接受委托的方法【代码】

我的代码正在使用实现这样的接口的组件public interface IFoo { void DoSomething(string p1);void DoSomething(string p1, Action<string> p2); }到目前为止,我正在使用第一种方法,但是我计划移至第二种方法,并且我希望保持尽可能高的覆盖率. 只是我真的不知道如何检查委托,甚至不设置Moq来模拟接口. 我尝试过mock.Setup(p => p.DoSomething(It.IsAny<string>(), It.IsAny<Delegate>())); mock.Setup(p => p.DoSomething(It.IsAn...

C#-单元测试-更新模型【代码】

我是单元测试的新手,我试图编写一个测试来验证在更新用户对象时是否正在更新正确的字段.我的单元测试如下:[Test] public void ShouldUpdateExistingEmployee() {var employees = new Employee[]{new Employee(){EmployeeId = 1,FirstName = "Johhn",LastName = "Smiths",Email = "John.Smith1@Illinois.gov",IsActive = true}};var mockContext = new Mock<SqlContext>();mockContext.Setup(e => e.Employees).ReturnsDbSet(emplo...

c#-使用接口对后台线程进行单元测试【代码】

我创建了一个类SenderClass,它将从其构造函数中启动和运行后台工作程序.RunWorker()方法运行的是while(true)循环,该循环将从队列中弹出元素,通过SendMessage()方法发送它们,并休眠一小段时间以允许将新元素添加到队列中. 问题就出在这里:如何测试从队列发送元素的方法,而又不将其暴露给使用类的人呢? 实现方式:public class SenderClass : ISenderClass {private Queue<int> _myQueue = new Queue<int>();private Thread _worke...

c#-单元测试仅在构建服务器上运行时失败【代码】

为了帮助进行单元测试,我们将DateTime类包装在委托中,以便可以在单元测试中覆盖DateTime.Now.public static class SystemTime {#region Static Fieldspublic static Func<DateTime> Now = () => DateTime.Now;#endregion }这是在xunit单元测试中使用它的示例:[Fact] public void it_should_update_the_last_accessed_timestamp_on_an_entry() {// Arrangevar service = this.CreateClassUnderTest();var expectedTimestamp = Syst...

c#-如果使用vstest.console.exe一项测试失败,如何停止测试?【代码】

我有一个批处理文件,其中包含以下面类似形式定义的多个测试.vstest.console.exe Test.dll /Settings:"test.runsettings" /Tests:"t1,t2,t3,t4,t5"测试从t1到t5依次进行.但是,如果任何一项测试失败,我想停止vstest.是否可以使用vstest.console.exe? 顺便说一句,我的test.runsettings的内容是<?xml version="1.0" encoding="utf-8"?> <RunSettings><MSTest><ForcedLegacyMode>true</ForcedLegacyMode> <KeepExecutorAliveAfterLegac...

c#-dotnet测试-测试项目未编译时退出代码0【代码】

我正在使用TeamCity构建我的.NET Core项目,并使用xunit进行dotnet测试以运行测试. 我的构建被配置为在任何测试失败的情况下失败,并且在测试失败的情况下可以正常工作,但是当测试项目未编译时,退出代码最终为零. 我相信这是因为我在包含这样的测试目录的文件夹中运行了dotnet test:对于(‘dir / b / s project.json’)中的/ f %%% a进行dotnet test %%% a. 查看日志,可以看到未编译的单个作业的退出代码为1,而构建步骤本身的退出代...

c#-如何在ASP.NET Core 1.1中对使用HttpContext的MVC控制器进行单元测试【代码】

我在.Net Core 1.1框架上用ASP.Net Core编写了这个小方法:public class AccountController : Controller {public IActionResult Logout(){HttpContext.Authentication.SignOutAsync("SchemaName");HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);return RedirectToAction("Index", "Home");} }我在如何编写验证此方法返回RedirectToActionResult的单元测试方面苦苦挣扎,并根据在此...

c#-如何在.NET Core中测试控制器【代码】

我有一个ASP.NET Core应用程序(NetCoreApp1.1)Web API项目,我想测试该项目的控制器.我添加了一个.NET Core类库(针对NetStandard1.6). 现在的问题是,根据Why doesn’t Microsoft.NETCore.App support netstandard1.6?,我无法从该类库引用Web API项目. 我的问题是,这是否意味着除非将控制器放置在其他地方,否则我将无法对其进行测试?也许有办法做到这一点,但我在VS 2017 RC中无法实现.解决方法:测试项目应该是控制台应用程序,而不是...

C#-Asp.net单元测试模型数据注释DataType.EmailAddress?【代码】

如何测试DataType.EmailAddress? 我有一个带有电子邮件属性的客户模型,其中包含以下数据注释以进行验证:[StringLength(100)] [DataType(DataType.EmailAddress, ErrorMessage = "Email must be a valid email address")] [Display(Name = "Email")] [Required(ErrorMessage = "Email is required")] public string email { get; set; }我正在编写单元测试来测试验证.我已经弄清楚了如何测试所需的字符串长度. 这是我的方法,可以捕...

c#-使用asp.net核心中的Identity server4对登录控制器进行API集成测试【代码】

我在使用IdentityServer4测试Login Controller时遇到问题.它引发以下错误:{System.Net.Http.WinHttpException (0x80072EFD): A connection with the server could not be established我正在尝试使用ResourceOwnerPassword生成访问令牌,为此我实现了IResourceOwnerPasswordValidator.调用RequestResourcePasswordAsync时,我在UserAccessToken.cs类中收到错误.我很确定这是因为处理程序.因为如果我在测试类中使用处理程序,并使用该处...

C#-单元测试需要更多时间进行减法【代码】

我通过编写简单的示例来尝试单元测试. 经过测试的代码:public class Operations {public static double Subtraction(double number1, double number2){return number1 - number2;}public static double Addition(double number1, double number2){return number1 + number2;}public static double Division(double number1, double number2){if (number2 != 0){return number1 / number2;}else{return number1;}}public static do...

C#-AspNetCore v2.0-在另一个项目中渲染剃刀视图以进行集成测试【代码】

我想为我的Web应用程序编写集成测试.我使用Microsoft.AspNetCore.TestHost.TestServer通过url与控制器进行通信.但是视图无法呈现.作为回应,我收到错误消息:One or more compilation references are missing. Ensure that yourproject is referencing ‘Microsoft.NET.Sdk.Web’ and the‘PreserveCompilationContext’ property is not set to false.在我的.csproj中,我尝试更改Microsoft.NET.Sdk.Web上的project-sdk,并尝试添加<...

C#-Azure AD B2C以编程方式获取令牌以进行单元测试【代码】

我的场景很简单,我有一个具有B2C身份验证的简单Azure函数,并且正在编写单元测试,但是发现了一个问题,我无法通过编程方式对Azure函数进行身份验证. 我能够通过浏览器访问,甚至我都可以获取令牌并将其放入单元测试中,并且可以正常工作,但是当我尝试使用ClientID,TenantID等生成令牌时,我得到了一个令牌,但是401对Azure函数的未经授权的响应. 有没有办法以编程方式生成有效的B2C令牌(无需在浏览器中登录? 到目前为止,我使用的方法是:...

c#-xUnit.net IsType在MS测试中等效,返回类型【代码】

我正在追踪this guide,并且尝试使用MS Test编写类似的测试. MS Test是否有一个IsType(),当强制转换成功时会返回对象? 从this comparison开始,我可以使用IsInstanceOfType(),但返回类型为void. 我正在尝试在MS Test中实现这一行:var badRequestResult = Assert.IsType< BadRequestObjectResult>(结果);[Fact] public async Task IndexPost_ReturnsBadRequestResult_WhenModelStateIsInvalid() {// Arrangevar mockRepo = new Mock...

UNIT - 相关标签