1
全新的测试,我有一个控制器是这样的:如何使用XUnit编写简单的测试用例?
public class CheckRegController : Controller
{
private readonly ApplicationDbContext _context;
private readonly AppSettings _appSettings;
public CheckRegController(ApplicationDbContext context, IOptions<AppSettings> appSettings)
{
_context = context;
_appSettings = appSettings.Value;
}
[HttpGet]
public IActionResult Get(string var1, int numberusers)
{
//...
}
}
现在我已经加入其中,我想使用的xUnit和最小起订量的测试项目。我只是想创建控制器就像我在一个非常简单的项目都做的一个对象,但它不能在this.When工作,我想:
CheckRegController cr = new CheckRegController();
它说:
有没有给定的参数对应于 所需的正式 参数 '语境' 'CheckRegController.CheckRegController(ApplicationDbContext, IOptions)' XUnitTestProjectOA
钍EN我试过了:
var moqHome = new Mock<ApplicationDbContext>();
但我不知道是否正确或者我需要做什么? 如何通过_context
和_appsettings
??
这正是我想要的......但在UnitTestProject的情况下,我们使用[TestMethod]属性,并通过单击测试用例我们可以运行任何测试用例,但在XUnitTestCase中,我有[Fact]属性,我无法运行测试用例?如何运行它?我正在使用命令:dotnet test -method namespace.projectname.methodname?但它不起作用。 – Mogli
它给我dbmock.object上的错误 - Castle.DynamicProxy.InvalidProxyConstructorArgumentsException:'无法实例化类的代理:abc.Data.ApplicationDbContext。? – Mogli
@Mogli这就是为什么我已经提出了关于抽象数据库上下文以提供更多灵活性的原因。 – Nkosi