C# Xunit测试,创建用户
嘿,我试图让这个单元测试工作,但它说,一个测试类只能定义一个公共构造函数。 但我不太确定该做什么,或者我做错了什么C# Xunit测试,创建用户,c#,dependency-injection,concurrency,xunit,C#,Dependency Injection,Concurrency,Xunit,嘿,我试图让这个单元测试工作,但它说,一个测试类只能定义一个公共构造函数。 但我不太确定该做什么,或者我做错了什么 using Application; using Domain.Models; using Infrastructure; using Infrastucture.Reposetories.Interface; using Microsoft.AspNetCore.Mvc; using System; using System.Linq; using Xunit; namespa
using Application;
using Domain.Models;
using Infrastructure;
using Infrastucture.Reposetories.Interface;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq;
using Xunit;
namespace Tests
{
public class UserTests
{
[Collection("Sequential")]
public class Usertets
{
private readonly IUsersHandlers usersHandler;
public Usertets(IUsersHandlers usersHandler)
{
this.usersHandler = usersHandler;
}
private readonly DB Context;
public Usertets(DB dB)
{
this.Context = dB;
}
Guid UserID = Guid.NewGuid();
[Fact]
public void CreateUserTest()
{
usersHandler.CreateUser(UserID, "Christian", "Gerken", "christianger14@yahoo.dk", "hejsa1", "25669504", (new DateTime(2000, 1, 1)), "sofie6", 7120, "danmark", Gender.Male);
var check = Context.Users.Where(x => x.ID == UserID).FirstOrDefault();
Assert.NotNull(check);
}
[Fact]
public void FindUser()
{
var user = usersHandler.GetUsersByID(UserID);
Assert.NotNull(user);
}
}
}
}
im通过优化并发使用依赖注入
对于我的Iuserhandlers usershandler和DataAccess层
但是,有没有基于这一点,我错过了什么?还是我尝试了错误的单元测试?您应该只定义一个具有所有所需依赖项的构造函数,例如:
[Collection("Sequential")]
public class Usertets
{
private readonly IUsersHandlers usersHandler;
private readonly DB Context;
// pass all dependencies here
public Usertets(IUsersHandlers usersHandler, DB context)
{
this.usersHandler = usersHandler;
Context = context;
}
还是我不太明白
using Application;
using Domain.Models;
using Infrastructure;
using Infrastucture.Reposetories.Interface;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq;
using Xunit;
namespace Tests
{
[Collection("Sequential")]
public class Usertets
{
private readonly IUsersHandlers usersHandler;
private readonly DB Context;
public interface IUsersHandlers
{
void CreateUser(Guid ID, string Fname, string Lname, string Email, string Password, string Phone, DateTime Birthdate, string Address, int Zip, string Country, Gender Gender);
}
public Usertets(IUsersHandlers usersHandlers, DB context)
{
this.usersHandler = usersHandlers;
context = context;
}
Guid UserID = Guid.NewGuid();
[Fact]
public void CreateUserTest()
{
usersHandler.CreateUser(UserID, "Christian", "Gerken", "christianger14@yahoo.dk", "hejsa1", "25669504", (new DateTime(2000, 1, 1)), "sofievej6", 7100, "danmark", Gender.Male);
var check = Context.Users.Where(x => x.ID == UserID).FirstOrDefault();
Assert.NotNull(check);
}
}
}
```
就像我在下面做的那样?