Fixture saling berintegrasi dengan “Lubang Tikus”

Posted: November 24, 2007 in ノート, Rails, Ruby on Rails, Technology

awal taunya dari blog ryan daigle yg sering banget ngebahas fitur-fitur di rails edge alias rails yang terbaruuu banget (bisa didapet dari http://dev.rubyonrails.org/svn/rails/trunk). Ngomong-ngomong do’i juga ngobrol-ngobrol tuh ama geoffrey di railspodcast

berputar-putar saya cobain contoh kecil aja dari fitur rails edge satu ini yang readmenya kurang lebih kek dari readme yang asli dibuat ama john yg bikin plugin rathole yang complain awalnya dihapus…

jadi nyebutin id otomatis, timestamp otomatis, tu semua gak usah ditulis lagi jadinya, bisa diliat di readme bahkan juga ada di test fixture yang di code rails trunk (link diatas udah).

disana nyebutin contohnya has many sama belongs to ya. jadi kalo saya udah sukses nyobain dia jalan mulus kek gini:

balances.yml

balance1:
  value: 500
  user: arie3

yang mana si user itu sebetulnya adalah foreign key user_id milik tabel balances yang berintegrasi dengan tabel users.

Jadi nggak bakal terjerambab terjebak lagi dengan cara lama:

balances.yml

balance1:
  id: 1
  value: 500
  user_id: 2
  created_at: 
  updated_at: timenowblablabladanseterusnya 

bayangin aja kalo punya has many through ampe joinnya dua biji (jadi kompleks bukan cuma satu, apalagi bukan cuma pakai habtm yang terbatas) bisa bengong dulu tuh ngetrace yang obyek satu ini di yaml file sebetulnya berhubungan/berintegrasi sama fixture obyek yang mana lagi dan seterusnya.

oh iya, btw dulu dulu tuh saya pake fixture_replacement plugin buat ngegantiin kelakuan fixture bahkan gak pake fixture sama sekali, saya belom nyoba sih gimana kalau pakai kombinasi alias dua-duanya walau tapi keknya kok redundant banget gitu ya. trus sekarang-sekarang gini saya malah tetep suka aja pake fixture tuh tapi yang rails edge lho ya (pakai piston import linkyangtadi vendor/rails ) karna dukungan rails edge buat fixture uda jauh tambah enak sekarang. tinggal urusan user_stories aja ini yang belum dukung fixture sama stub mocking obyek nanti buat tim rspec musti kita dukung biar fitur ini juga jadi standar sehingga proses dari spec’ing ke coding jadinya enak.

Comments
  1. should have one balance
    expected: 100,
    got: # (using ==)

    kalau ini yang dari file user.rb (yang has_one :balance)

    haha, jadi mau stressing kalau fitur ini berlaku banget untuk belongs_to.. tapi timbal baliknya well, see.. or might be only me? you tell me….

  2. should have one balance
    expected: 100,
    got: #Balance id: 667849788, value: 100, user_id: 637009073, created_at: “2007-11-24 09:21:30”, updated_at: “2007-11-24 09:21:30” (using ==)

    bah! WordPress comment filter sialan!

    perhatikan itu id fixture nya jadi otomatis dari rails panjang banget :D

  3. houwahahaha komentar 2 diatas dodol! terang aja object nya kok mau langsung dikasih value!

    mustinya users(:arie3).balance.value.should == 100

    langsung hijau dia! spec’ing sukses without errors! Love Green…. Indonesia Paru Paru Dunia…. :-D mck alah.

  4. maksudnya dengan kata lain, perilaku lubang tikus ini berlaku secara timbal balik juga. !!! wohoo i love it so much…

  5. ih baruu aja nge post ini walau itu tutorial dari link asli uda oktober lalu, ee hari ini pas malem tadi barusan gw cek uda ada railscast nya ;-) asiik

    http://railscasts.com/episodes/81

    komplit nih, ama contoh habtm juga, walau bukan favorit gw gpp (gw pake has_many :through)

tinggalkan feedback konstruktif atau lebih baik diam

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s