我的方案包括以下几点。
最后......我想尝试用Ruby编写单元测试。
由于单元测试将在包含待测代码的程序集的外部,因此被测试的程序集将需要具有指定单元测试程序集名称的“InternalsVisibleTo”属性。这当然意味着Ruby单元测试必须编译成.NET程序集,以便以这种方式为它们提供访问权。
可以这样做吗?如果是这样,怎么样?我在网上找到的关于“编译IronRuby”的所有内容都是关于从源代码构建实际的IronRuby运行时。
答案 0 :(得分:2)
解决方案非常简单(您甚至不需要将IronRuby代码编译为程序集)。
IronRuby解释器(ir.exe)支持命令行开关-X:PrivateBinding(这是区分大小写的,注意)。当解释器以私有绑定模式运行时,您可以调用.NET类的内部甚至私有成员。
因此,要测试.NET类内部成员,请按如下方式运行测试代码(假设测试代码位于名为“test_my_code.rb”的文件中):
ir -X:PrivateBinding test_my_code.rb