| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using Abp.TestBase;
- using Buissness.UnitTest.InitialData;
- using Business.Core.MongoDBHelper;
- using Business.EntityFrameworkCore;
- using Castle.MicroKernel.Registration;
- using System.Data.Common;
- using Volo.Abp.Modularity;
- namespace Buissness.UnitTest
- {
- /// <summary>
- /// 这是所有测试类的基础类。
- /// 它准备了ABP系统,模块和一个假的内存数据库。
- /// 具有初始数据的种子数据库(<see cref =“SimpleTaskSystemInitialDataBuilder”/>)。
- /// 提供使用DbContext轻松使用的方法。
- /// </summary>
- public abstract class UnitTestBase: AbpIntegratedTestBase<UnitTestModule>
- {
- protected UnitTestBase()
- {
- //种子初始数据
- UsingDbContext(context => new UnitTestInitialDataBuilder().Build(context));
- }
- protected override void PreInitialize()
- {
- //假DbConnection使用Effort!
- LocalIocManager.IocContainer.Register(
- Component.For<DbConnection>()
- .UsingFactoryMethod(Effort.DbConnectionFactory.CreateTransient)
- .LifestyleSingleton()
- );
- base.PreInitialize();
- }
- public void UsingDbContext(Action<BusinessDbContext> action)
- {
- using (var context = LocalIocManager.Resolve<BusinessDbContext>())
- {
- action(context);
- context.SaveChanges();
- }
- }
- public T UsingDbContext<T>(Func<BusinessDbContext, T> func)
- {
- T result;
- using (var context = LocalIocManager.Resolve<BusinessDbContext>())
- {
- result = func(context);
- context.SaveChanges();
- }
- return result;
- }
- }
- }
|