我正在使用 Visual Studio 2010 用 C# 编写一个项目,但想使用 NUnit 进行单元测试。
我对 oop 很陌生,但我试图尽可能地隐藏信息并只公开所需的最少接口。这意味着我有几个完全在库内部的类——它们可以处理一些内部状态,而用户只需要知道几个提供接口的公共类。
这似乎尽可能地隐藏,为用户提供最小的界面。
但是,如果我想进行单元测试,我看不到测试这些类的方法。所以我的问题是什么是最佳实践?纯粹为了单元测试而不得不公开它们似乎是一种耻辱..还是有更好的工具来完成这项工作?
在尽可能多地封装和公开尽可能多的方法以允许它们全部被测试之间似乎是一种权衡——当然最好是单元测试来测试内部工作并让集成测试来测试公共接口?
--
我意识到通常情况下,您只会担心对公共接口进行单元测试,但在这种情况下,这会导致很多非常复杂的测试 - 将所有内容分解成小块进行测试肯定会更好?