테스트할 Class의 접근자가 inernal일 경우에는 InternalsVisibleTo Attribute를 이용해서 처리하였습니다.
- 다른 어셈블리에서 internal 접근하기
Rhino.Mocks의 목 또는 스텁 개체를 생성할 때 아래의 Exception이 발생하게 됩니다.
GeneratorException
- Type is not public, so a proxy cannot be generated. Type: LogAnalyzer.IWebService
|
공개키를 잘못 설정했나..확인해도 동일하게 동작이 안되서 구글링 하였습니다.
DynamicProxyGenAssembly2라는 Assembly명과 아래의 공개키를 작성하시면 완료됩니다.
(목 개체는 런타임 중 DynamicProxyGenAssembly2라는 임시 어셈블리에서 파생되기 때문?)
//해당 Assembly에는 internal 접근 가능
[assembly: InternalsVisibleTo("LogAnalyzerTests, PublicKey="+
"002400000480000094000000060200000024000052534131000400000100010039118d1ce536a1" +
"bc2b937c38ae739474d1397586518a1932e237d5243285bbb084200abb9a75e6aea5cead38d57d"+
"5835744489bbc3bbac3f97fe9bb8def768aa73d34f937eb7e6f1feed54e59bdbaddd3a825e6a69"+
"a40c2f18c830921782bcaa1b2123e12bca5eb2280b51d976da14786b5ab81e7e2d907792c1765c"+
"6d9101cd")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2," +
"PublicKey=00240000048000009400000006020000002400005" +
"25341310004000001000100c547cac37abd99c8db225ef2f6c8" +
"a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7" +
"852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0" +
"a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15" +
"605093924cceaf74c4861eff62abf69b9291ed0a340e113be11" +
"e6a7d3113e92484cf7045cc7")]
|
참조 : Rhino Mocks Internal Members