-
Notifications
You must be signed in to change notification settings - Fork 3
Unittestsupport
10000flextures can call in unit test tools, RSpec, Should (minitest is not support now)
When you use flextures in RSpec, using like 'fixtures' function For example, under sample load users.csv and items.csv to database
describe ItemShopController do
flextures :users, :items
if you want to change fixtures file name. Hash style format can load another file name.
describe ItemShopController do
flextures :items, :users => "itmshop/users" # load "itemshop/users.csv"
'fixtures :all' load all fixtures data
describe ItemShopController do
flextures :all
flextures function can set option. below sample set 'unfilter' option.
'unfilter' option forbiddon FactoryFilter
describe ItemShopController do
flextures( { unfilter: true }, :users )
When you want to use flextures in Shoulda, same Rspec but flextures function is callable only 'context' blocks
class LoadTest < Test::Unit::TestCase
context "context" do
flextures :users
method name | description |
---|---|
flextures_delete(table_names) | delete loaded datas |
flextures_set_options(options) | set context's default option |
option | description |
---|---|
dir | set fixtures file directory |
minus | ここで指定されたカラムのデータは読み込む前に破棄されて、FactoryFilterやfixturesが保管したものが引き渡されます |
silent | forbiddon error messages |
stair | 階差ロード機能をONにします |
strict | データのロード時に値の補完を自動で行わないでエラーをそのままraiseします |
unfilter | forbiddon FactoryFilter |
controller | set fixtures file directory. directory is "controllers/:controller_name/" |
action | set fixtures file directory. directory is "controllers/:controller_name/:action_name" |
model | set fixtures file directory. directory is "models/:model_name" |
method | set fixtures file directory. directory is "models/:model_name/:action_name" |
'dir' options can set fixture load directory
describe ItemShopController do
flextures( { dir:"itemshop" }, :users )
but I recommend to use 'controller' or 'model', 'action', 'method' option 'controller' and 'action' option serch 'controllers/:controller_name/:action_name' directory For example, under sample load 'controllers/itemshop/buy/users.csv'
describe ItemShopController do
flextures( { controller:"itemshop", action:"buy" }, :users )
If you want to load fixture to use model test, you should use 'model' option Below exsample is loading "spec/fixtures/models/monster/attack/users.csv"
describe Monster do
flextures( { models:"monsters", method:"attack", stair: true }, :users )
このオプションと階差ロード機能を使うことで 特別なデータが必要なテーブルだけ、決まった場所のディレクトリにファイルを設置して テストを行う事ができるようになります
This option delete CSV file's values In this case, created_at and updated_at columns value is deleted, and fill flextures default value (current time)
describe Monster do
flextures( { minus:[:created_at,:updated_at], silent: true }, :users )
When this option is elabled, flextures don't complete column value, don't complete lack column data, and don't delete overflow column data (behavier like fixture function)
describe Monster do
flextures( { strict: true }, :users )
unfilter option forbiddon FactoryFilter
describe Monster do
flextures( { unfilter: true }, :users )