Мой сценарий состоит из следующих моментов.
И наконец.... Я хочу попытаться писать модульные тесты в Ruby.
Так как модульные тесты были бы внешними к блоку, содержащему код под тестом, блоки под тестом должны будут каждый иметь атрибут "InternalsVisibleTo", указывающий название блока модульного теста. Который, конечно, означал бы, что модульные тесты Ruby должны будут скомпилировать вниз в блок.NET, таким образом, им можно предоставить доступ таким образом.
Это может быть сделано? Если так, как? Все, что я могу найти в сети о "компиляции IronRuby", о создании фактического времени выполнения IronRuby из источника.
Решение очень простое (и вам даже не нужно компилировать код IronRuby в сборку).
Интерпретатор IronRuby (ir.exe) поддерживает параметр командной строки -X: PrivateBinding (это чувствительно к регистру, обратите внимание). Когда интерпретатор работает в режиме частной привязки, вы можете вызывать внутренние и даже частные члены классов .NET.
Поэтому, чтобы проверить внутренние члены вашего .NET-класса, запустите тестовый код следующим образом (предполагая, что тестовый код находится в файле с именем "test_my_code.rb"):
ir -X:PrivateBinding test_my_code.rb