如何在rspec中隔离和测试动态创建的类

如何在rspec中隔离和测试动态创建的类,rspec,Rspec,如何使用rspec 3.9.0为每个测试正确地创建一个新的隔离类 下面是一个测试用例: 描述“动态类创建”操作 它“应该已经动态地创建了类‘One’”吗 一级;结束 期望(一)。成为(类)的实例 结束 它“不应该有类'One'并引发'uninitialized constant One'错误”这样做 期望{One}.引发\u错误(的\u实例\u(NameError)。并且具有\u属性(消息:“未初始化常量一”) 结束 结束 好吧,我真的想出了解决自己问题的办法。我将在此处发布解决方案,供其他需要

如何使用rspec 3.9.0为每个测试正确地创建一个新的隔离类

下面是一个测试用例:

描述“动态类创建”操作
它“应该已经动态地创建了类‘One’”吗
一级;结束
期望(一)。成为(类)的实例
结束
它“不应该有类'One'并引发'uninitialized constant One'错误”这样做
期望{One}.引发\u错误(的\u实例\u(NameError)。并且具有\u属性(消息:“未初始化常量一”)
结束
结束

好吧,我真的想出了解决自己问题的办法。我将在此处发布解决方案,供其他需要它的人使用:

描述“动态类创建”操作
之后:每个人都做
Object.send(:remove_const,:One)如果定义了Object.const?(:One)
结束
它“应该已经动态地创建了类‘One’”吗
一级;结束
期望(一)。成为(类)的实例
结束
它“应该引发”未初始化常量一“错误”吗
期望{One}.引发\u错误(的\u实例\u(NameError)。并且具有\u属性(消息:“未初始化常量一”)
结束
结束