如何对项目不引用特定程序集进行单元测试

本文关键字:程序集 单元测试 引用 项目 | 更新日期: 2023-09-27 18:32:20

我们将一些接口分离到它自己的库中,并且不希望在调用项目中直接引用带有实现的库。

答:调用代码项目。B:接口项目。C:实施项目

A 应引用 B 而不是 C

我们希望通过单元测试来确保这一点。

使用 NUnit 进行单元测试会是什么样子?

如何对项目不引用特定程序集进行单元测试

不能说我曾经这样做过。您可以尝试使用 Assembly.GetReferencedAssemblies?

这个答案只是为了记住单元测试供我自己使用。但请随意投票:-)

[Test]
public void ShouldNotReferenceServiceProjectDirectly()
{
    var assembly = GetAssemblyContainingType<RouteConfig>();
    var referencedAssemblies = assembly.GetReferencedAssemblies();
    var implementationAssembly = referencedAssemblies
        .FirstOrDefault(x => x.Name == "MyNamespace.Service");
    var interfaceAssembly = referencedAssemblies
        .FirstOrDefault(x => x.Name == "MyNamespace.Service.Interfaces");
    Assert.That(implementationAssembly, Is.Null);
    Assert.That(interfaceAssembly, Is.Not.Null);
}
private static Assembly GetAssemblyContainingType<T>()
{
    return (typeof(T).Assembly);
}