其实关于webapi和Ef service的单元测试我以前已经写过相关文章,大家可以参考:
单元测试 mock EF 中DbContext 和DbSet Include
先看一下项目结构图:
这个demo非常简单,UTWebApi.Data 是纯粹的数据定义,UTWebApi.Service是我们的业务服务逻辑层,UTWebApi 是我们webapi的实现,UTWebApi.Tests就是测试项目。
数据层:
BloggerDbContext的构造函数一般都是一个,有些时候也会有多个,如:
如果你的DbContext包含数据库中所有的表,那么只要第一个构造函数就可以了,但是如果你的表在几个DbContext中,那么第二构造函数可能需要了, 比如你需要同时操作10张表,那么这10张表的操作应该在同一个事务里面吧,但是他们分布在2个DbContext里面,所以这2个DbContext应该用一个连接。
internal class ArticleConfiguration : EntityTypeConfiguration<Article>实体的配置类不应该是public。