Visual Studio 2012中的私有访问器

时间:2012-07-06 11:50:10

标签: .net unit-testing visual-studio-2012 private-members

据我所知,Visual Studio 2012不支持私有访问者。你能给我一些关于可能的替代方案的信息吗? PrivateObject.Invoke()对我来说不是最好的解决方案。

提前谢谢!

3 个答案:

答案 0 :(得分:7)

将您的成员标记为“内部”并使用InternalsVisibleTo属性。使用简单,没有类型安全问题。

答案 1 :(得分:0)

也许此帖子Home-made Private Accessor for Visual Studio 2012+可以帮助您创建自己的私人访问者。

此致

的Stefan

答案 2 :(得分:0)

我开始使用 Dynamic Private Accessor 功能,它是nuget包Chaining Assertion for MSTest的一部分,我对它很满意。一个人失去强类型,但至少语法仍然可读。 这适用于动态功能。还有其他测试框架的包。 测试代码如下所示:

var target = CreateMyObjectUnderTest();
dynamic dynamicTarget = target.AsDynamic();
Assert.AreEqual("abc", dynamicTarget.MyPrivateProperty);
Assert.AreEqual("xyz", dynamicTarget.PrivateMethod(123));
相关问题