我们在自己的库中分离了一些接口,并且不希望在调用项目中直接引用具有实现的库。
A:调用代码项目。B:接口项目。C:实施项目
A 应该引用 B 而不是 C
我们希望通过单元测试来确保这一点。
使用 NUnit 进行单元测试会是什么样子?
我们在自己的库中分离了一些接口,并且不希望在调用项目中直接引用具有实现的库。
A:调用代码项目。B:接口项目。C:实施项目
A 应该引用 B 而不是 C
我们希望通过单元测试来确保这一点。
使用 NUnit 进行单元测试会是什么样子?
不能说我曾经这样做过。您可以尝试使用Assembly.GetReferencedAssemblies吗?
This answer is just to remember the unit test for my own usage. But feel free to upvote :-)
[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);
}