Questions tagged «asp.net-core»

15
我们是否应该从一开始就设计代码以启用单元测试?
目前,我们的团队正在争论是否修改代码设计以允许单元测试是代码的味道,或者在什么程度上可以做到而又没有代码的味道。之所以如此,是因为我们只是刚刚开始实施几乎所有其他软件开发公司中都存在的实践。 具体来说,我们将提供一个非常薄的Web API服务。它的主要职责将是整理Web请求/响应并调用包含业务逻辑的基础API。 一个示例是我们计划创建一个将返回身份验证方法类型的工厂。我们不需要它继承一个接口,因为我们不希望它有任何具体类型。但是,要对Web API服务进行单元测试,我们需要模拟该工厂。 从本质上讲,这意味着我们要么设计Web API控制器类以接受DI(通过其构造函数或设置器),这意味着我们正在设计控制器的一部分,只是为了允许DI并实现我们原本不需要的接口,或者我们使用第三方框架(如Ninject)可以避免以这种方式设计控制器,但是我们仍然必须创建一个接口。 团队中的某些人似乎不愿意仅仅为了测试而设计代码。在我看来,如果您希望进行单元测试,则必须做出一些妥协,但是我不确定他们的担忧如何得到缓解。 需要明确的是,这是一个全新的项目,因此,它并不是真正地修改代码以进行单元测试。这是关于将要编写的代码设计为可单元测试的。

5
我应该检查数据库中是否存在某些东西并且快速失败或等待数据库异常
有两节课: public class Parent { public int Id { get; set; } public int ChildId { get; set; } } public class Child { ... } 分配给时ChildId,Parent我应该首先检查数据库中是否存在它,或者等待数据库引发异常? 例如(使用实体框架核心): 注意,即使在官方的Microsoft文档中,这类检查也已遍及整个Internet:https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/getting-started/getting-started-with-ef-using- MVC /处理与实体框架在ASP.NET MVC应用程序中的并发处理#修改部门控制器,但还有其他异常处理SaveChanges 另外,请注意,此检查的主要目的是向API用户返回友好消息和已知的HTTP状态,而不是完全忽略数据库异常。并且唯一引发异常的地方是在内部SaveChanges或SaveChangesAsync调用中...因此,当您调用FindAsync或时不会有任何异常Any。因此,如果子项存在但在此之前被删除,SaveChangesAsync则将引发并发异常。 我这样做的原因是,foreign key violation异常将很难格式化以显示“找不到ID为{parent.ChildId}的孩子”。 public async Task<ActionResult<Parent>> CreateParent(Parent parent) { // is this code redundant? // NOTE: its …

2
哪些数据应存储为“声明”?
在ASP.Net Core中,我发现Claims授权不是很具体的方法。我们可以添加任何东西作为ClaimType和ClaimValue配对;组,名字,姓氏,生日,canAccessThisURI,isEditor等。但是,这种方法(存储可以存储为声明的任何内容)将构成一个巨大的声明表,其中包含50%的应用程序数据。 我想知道,作为一种好的做法,应将哪些常见数据存储为索赔?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.