Ruby on rails ActiveSupport::TestCase赢得';不运行数据库命令?
我有3个问题:Ruby on rails ActiveSupport::TestCase赢得';不运行数据库命令?,ruby-on-rails,ruby,testing,Ruby On Rails,Ruby,Testing,我有3个问题: Rails附带的默认测试库是什么?我真的看不出它叫什么。。。小测验?测试单元 如何使某些代码在每个测试用例中运行一次,以设置所有测试。似乎在每次测试之前都会运行setup do,但我想为整个文件进行设置 为什么我下面的示例不起作用(它不会在每次测试之前清除并重新创建种子数据) 代码: 需要“测试助手” #负数 #3+行项目日记账分录 类LedgerTest
setup do
,但我想为整个文件进行设置需要“测试助手”
#负数
#3+行项目日记账分录
类LedgerTest
我认为你应该把这篇文章分成3篇,因为这样比较容易
1 ActiveSupport::TestCase框架
ActiveSupport::TestCase
extendsMinitest::Test
2在文件中的所有示例之前设置
据我所知,所有的方法都是权宜之计。默认情况下,nice API不支持这样做。
“快速搜索”会得出以下结论:
setup_executed = false
setup do
unless setup_executed
#code goes here
setup_executed = true
end
end
3安装程序不工作
在开发和测试环境中,默认情况下,类是根据需要自动加载的。除非您在运行
ActiveRecord::Base.subclass
之前在代码中的某个地方引用了一个类,否则ruby不会知道它的存在,因为它从未被加载过。我认为您应该将它分为3篇文章,因为这样比较容易
1 ActiveSupport::TestCase框架
ActiveSupport::TestCase
extendsMinitest::Test
2在文件中的所有示例之前设置
据我所知,所有的方法都是权宜之计。默认情况下,nice API不支持这样做。
“快速搜索”会得出以下结论:
setup_executed = false
setup do
unless setup_executed
#code goes here
setup_executed = true
end
end
3安装程序不工作
在开发和测试环境中,默认情况下,类是根据需要自动加载的。除非在运行
ActiveRecord::Base.subclass
之前在代码中的某个地方引用了一个类,否则ruby不会知道它的存在,因为它从未被加载过。hmm我明白了。。实际上,我正在尝试在所有测试之前清除数据库(因此在文件开头一次),然后在每个测试之前清除一个特定的表(因此在每个测试之前)。我应该试着用rspec或其他什么来做这件事吗?推荐的方法是什么?@Tallboy这可能是您正在寻找的,那么ActiveSupport::TestCase
是否会在每次测试之间自动清理数据库?这让我快发疯了,但它似乎已经这么做了?(不需要任何额外的宝石)您似乎缺少“测试夹具”。搜索“Rails测试夹具”将发现您试图在这里重新发明的车轮。嗯,我明白了。。实际上,我正在尝试在所有测试之前清除数据库(因此在文件开头一次),然后在每个测试之前清除一个特定的表(因此在每个测试之前)。我应该试着用rspec或其他什么来做这件事吗?推荐的方法是什么?@Tallboy这可能是您正在寻找的,那么ActiveSupport::TestCase
是否会在每次测试之间自动清理数据库?这让我快发疯了,但它似乎已经这么做了?(不需要任何额外的宝石)您似乎缺少“测试夹具”。搜索“Rails测试夹具”将发现您试图在此处重新发明的车轮。