0
我想編寫一些單元測試以確保我的域名空間和我的接口IUnitOfWork
已正確同步。關於在接口中尋找泛型的單元測試的思考
例如,如果我有一個域實體Foo
,我應該在我的IUnitOfWork接口中具有IQueryable類型的對應屬性。所以,如果我有:
namespace My.Domain
{
public class Foo : IEntity<Guid>
{
//properties
}
}
namespace My.Interfaces
{
public interface IUnitOfWork
{
public IQueryable<Foo> Foos { get; }
}
}
我開始我的單元測試,像這樣:
private static readonly Assembly _assembly = typeof(Assembly.Class).Assembly;
[TestMethod]
public void AllEntitiesInNamespaceHaveCorrespondingIUnitOfWorkProperties()
{
var classesInDomainNamespace = _assembly.GetTypes()
.Where(x => string.Equals(x.Namespace, "My.Domain", StringComparison.Ordinal))
.Distinct();
var entitiesInUnitOfWork = typeof(IUnitOfWork).GetProperties()
.Where(x => x.PropertyType.IsAssignableFrom(typeof(IQueryable<IEntity<Guid>>)))
.Distinct();
}
...這是我開始遇到問題。理想情況下,我想斷言classesInDomainNamespace
和entitiesInUnitOfWork
中的記錄數是相同的,但是在處理泛型時會出現奇怪現象。
我該如何寫這個單元測試?
這似乎有竅門!謝謝! –