2

我从单元测试开始,我想为一些已经实现的类编写测试。

我们正在为这个项目中的接口开发,我想它在编写单元测试时会有所帮助。但是接口实现被标记为内部的,到目前为止我发现测试实现的最佳解决方案是:

#if DEBUG
public class CreateRequestService : DomainServiceBase, ICreateRequestService
#else
internal class CreateRequestService : DomainServiceBase, ICreateRequestService
#endif
{

你对那个怎么想的?我试图弄清楚如何在单元测试中使用 autofac,但对我来说闻起来很香。这是一个好习惯吗?

更新

我忘了指定我正在使用的工具。我正在使用 C# 4.5、NUnit 和 Moq!

4

1 回答 1

4

几年前,我曾经隐藏过类似的类和接口。停止这样做,只有在我开发库时才会使用它。

如果您使用.NET,您可以制作“朋友程序集”。这样单元测试程序集可以看到生产程序集的内部成员。但是为此,您需要访问生产程序集中的代码(您需要添加程序集属性)。

[assembly: InternalsVisibleTo("AssemblyB")]

http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx

另一种选择是简单地将类和接口公开并将它们移动到

 MyProduct.xxx.yyy.Internal 

命名空间。这样您就可以进行测试,并且团队的每个成员都知道它不应该使用这些成员。

于 2013-03-10T22:41:11.533 回答