【发布时间】:2019-08-27 23:47:39
【问题描述】:
我正在编写一个测试方法来检查两个实体对象是否相等。我还需要比较这两个实体对象的每一项。
public class DatabaseServiceTestBase<TEntity, TContext, TService>
where TEntity : IBaseModel<Guid>
where TContext : DatabaseContext
where TService : IDatabaseService<TEntity, Guid>
{
public abstract class ContextBase
{
public TService Service { get; set; }
public TContext Context { get; }
public ContextBase(string databaseName)
{
var options = new DbContextOptionsBuilder<TContext>()
.UseInMemoryDatabase(databaseName: databaseName)
.Options;
Context = (TContext)Activator.CreateInstance(typeof(TContext), new object[] { options });
}
// how to implement AssertObjectsEqual method?
public virtual void AssertObjectsEqual(TEntity expected, TEntity actual)
{
}
}
}
如何实现AssertObjectsEqual 方法?我是泛型类型的新手。
【问题讨论】:
-
在同一个instance中相等,还是在共享同一个data中相等?
-
等同于同一个实例
-
expected == actual或object.ReferenceEquals(expected, actual)? -
@TheGeneral 你认为下面的代码也检查实体中的项目吗?请帮忙。公共虚拟无效 AssertObjectsEqual(TEntity 预期,TEntity 实际) { object.ReferenceEquals(预期,实际) }
标签: c# asp.net-core