我有一个静态类,其中有一个私有变量。
private static Dictionary<strng, string> items = new Dictionary<string, string>();
该类的许多公共方法都会访问此字典对象。现在我想编写一个NUnit测试类(在不同的库中)。如何测试这个私有变量?
我有一个静态类,其中有一个私有变量。
private static Dictionary<strng, string> items = new Dictionary<string, string>();
该类的许多公共方法都会访问此字典对象。现在我想编写一个NUnit测试类(在不同的库中)。如何测试这个私有变量?
[assembly:InternalsVisibleTo("MyUnitTestsLibrary")]
foo
实例上名为SomePrivateMethod
的私有方法。[Test]
public void SampleTest()
{
var foo = new Foo();
int actual = Mirror.ForObject(foo)["SomePrivateMethod"].Invoke();
Assert.AreEqual(123, actual);
}
在进行单元测试时,应该测试公共接口,而不是私有实现。检查接口在执行操作时是否按预期运行,而不检查字典本身。这样,如果您将来决定使用不同的数据结构替换字典,就不会破坏所有测试。