【发布时间】:2015-05-19 00:38:38
【问题描述】:
我正在为我的应用程序编写回归测试,并使用 Page 类。每个页面都有一个nav_to方法,需要在实例初始化时用proc设置。
我目前在全球范围内有 40 个一些 proc 的列表,对我来说这似乎很草率。存储这些过程的最佳实践是什么?我应该将它们存储在一个模块中吗?哈希?班级?请帮忙!
【问题讨论】:
-
请发布您目前拥有的代码。
标签: ruby
我正在为我的应用程序编写回归测试,并使用 Page 类。每个页面都有一个nav_to方法,需要在实例初始化时用proc设置。
我目前在全球范围内有 40 个一些 proc 的列表,对我来说这似乎很草率。存储这些过程的最佳实践是什么?我应该将它们存储在一个模块中吗?哈希?班级?请帮忙!
【问题讨论】:
标签: ruby
考虑将它们存储在模块(或类)常量中,以便可以清楚地对它们进行分组和命名。您选择的数据结构(数组 vs 散列)可能主要取决于您想要的接口(它们是与某些键相关联还是简单排序?)和性能问题(如果相关):
module MyTests # ...or "class"
NAV_TO_PROCS = [
Proc.new { ... },
Proc.new { ... },
]
# ... or ...
NAV_TO_BY_PAGE_NAME = {
"page1" => Proc.new { ... },
"page2" => Proc.new { ... },
}
end
顺便说一句,在使用模块常量时,我喜欢“冻结”它们以避免在使用过程中发生意外突变(例如NAV_TO_PROCS = [...].freeze)。
【讨论】: