Kev*_*aft 1 .net c# unit-testing visual-studio nuget
我目前有两个项目的解决方案设置:
MySolution
- MyClassLibrary
- MyClassLibrary.Tests
Run Code Online (Sandbox Code Playgroud)
MyClassLibrary项目作为NuGet包分发.测试项目包含我目前未与NuGet包一起分发的所有单元测试.
问题是在MyClassLibrary中,我的一个类接受一个IMyRepository作为构造函数参数(允许依赖注入).然后,我在MyClassLibrary.Tests项目中设置了一个名为IMyRepositoryTests的抽象测试类设置.目的是当你编写自己的IMyRepository实现时,你可以编写一个简单地继承自IMyRepositoryTests的测试类,并传入你的具体类的实例,所有测试都将为你完成.
所以结构看起来像这样:
Solution
- MyClassLibrary
-- MyServiceClass(IMyRepository repository)
-- IMyRepository
- MyClassLibrary.Tests
-- MySericeClassTests
-- IMyRepostoryTests (abstract)
Run Code Online (Sandbox Code Playgroud)
问题是测试项目没有与NuGet包一起分发,所以如果有人想要对他们具体的IMyRepository实现进行单元测试,他们将不得不编写自己的所有测试,这些测试(1)不会利用我已经为他们编写的测试代码和(2)可能不符合我对IMyRepository的规范.
如果我将IMyRepositoryTests移动到MyClassLibrary项目,那么该项目将依赖于我的单元测试框架(Xunit和Moq).这为没有进行单元测试的人增加了不必要的依赖关系.
如果我使用NuGet包发送测试项目,那么我会创建相同的问题,而且看起来像使用单元测试发送NuGet包似乎不是标准做法.
我可以将Tests项目作为单独的NuGet包发布,但这看起来也很奇怪.
我还缺少其他选择吗?
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |