所以,问题是我的程序集中有一堆内部类,这些类是我想测试的类使用的。由于访问器已从VS2012中删除,所以我很好地使用了[InternalsVisibleTo]
,这很好用......除非我试图使我的内部类类化时,它们对于Fakes框架是不可见的。我还应该注意到,我正在处理的特定类是一个带有静态方法的静态类,并且我并不想重构所有使用接口(和使用存根)的所有东西,因为组织中的阻力与重构的水平有关。如何使用Fakes Framework垫片模拟/隔离VS 2012中的内部类?
有没有办法使这些内部成员可以在Visual Studio 2012中使用垫片上下文而不需要使用任何接口(字面上)?
它确实说,但是当我试过这个,我的内部接口没有出现。我只能获取公共接口的存根。我知道最初的问题是关于垫片 - 你是否能够将它用于存储内部接口? –
我们正在更新MSDN页面。您还需要一个InternalsVisibleToAttribute来允许您的测试程序集访问来自目标程序集的内部类型。换句话说,你需要: [assembly:InternalsVisibleTo(“TargetAssembly.Fakes”)] [assembly:InternalsVisibleTo(“TestAssembly”)] –
该错误的msdn页面的重要提示:'The Fakes框架使用相同的密钥签署所有生成assemblies',所以公钥签署是否应始终'公钥= 0024000004800000940000000602000000240000525341310004000001000100e92decb949446f688ab9f6973436c535bf50acd1fd580495aae3f875aa4e4f663ca77908c63b7f0996977cb98fcfdb35e05aa2c842002703cad835473caac5ef14107e3a7fae01120a96558785f48319f66daabc862872b2c53f5ac11fa335c0165e202b4c011334c7bc8f4c4e570cf255190f4e3e2cbc9137ca57cb687947bc'如果您已登录的东西!我永远需要抓住这个! –