我在ActiveRecord::Migration、ActiveRecord::ConnectionAdapters::TableDefinition和ActiveRecord::ConnectionAdapters::Table by that pull request中添加了monetize和demonetize助手。
That file显示了使用示例。所以你一眼就能理解虚构的变化。(它可以工作)
但我不知道如何测试我的助手。我可以用什么方式为他们写规格书?我在spec文件中编写迁移并手动运行它们的所有尝试都失败了。迁移手动运行没有更改表(或者我无法检测到更改),也没有抛出任何异常。
我的尝试示例:
describe 'monetize' do
class MonetizeMigration < ActiveRecord::Migration
def change
create_table :items
monetize :items, :price
end
end
class Item < ActiveRecord::Base; end
it 'should monetize items' do
MonetizeMigration.up #=> nil
Item #=> Item(has no table)
end
end 发布于 2012-11-26 16:15:56
您可以直接在数据库连接上执行任何迁移助手方法:
ActiveRecord::Base.connection.create_table :items感谢@happy_user在第一次尝试时指出了我的错误。我想将来可能会有人使用我的最新解决方案,所以我就把它留在这里。
https://stackoverflow.com/questions/13550288
复制相似问题