8000 Unittestsupport · baban/flextures Wiki · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Unittestsupport

10000
baban edited this page Jul 4, 2013 · 12 revisions

About Unit test support

flextures can call in unit test tools, RSpec, Should (minitest is not support now)

RSpec

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 )

Shoulda Support

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

other functions

method name description
flextures_delete(table_names) delete loaded datas
flextures_set_options(options) set context's default option

load options

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

'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 )

このオプションと階差ロード機能を使うことで 特別なデータが必要なテーブルだけ、決まった場所のディレクトリにファイルを設置して テストを行う事ができるようになります

minus option

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 )

strict option

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

unfilter option forbiddon FactoryFilter

 describe Monster do
  flextures( { unfilter: true }, :users )
Clone this wiki locally
0