我有一个测试类的名称(作为字符串),例如."Reports::SalesReportTest"。如果不将所有测试文件加载到内存中,我如何才能找到Ruby会加载哪个文件才能使测试类工作呢?
要重新定义,是否有一个函数以类/模块名称(作为字符串),并返回需要加载的文件路径以使类/模块工作?
发布于 2018-03-15 07:36:11
首先,类定义可以跨越多个文件。其次,可以动态创建类,例如使用eval。
如果您知道应用程序总是以这样一种样式编写,即每个类都在一个文件中完全定义,并且每个定义都遵循某些样式规则(例如,每个class CLASSNAME从自己的一行开始),则可以读取应用程序目录中的所有文件并扫描类定义。不要忘记,可能会有用=begin和=end注释掉的行,您将不得不忽略这些行。
https://stackoverflow.com/questions/49291205
复制相似问题