Loading ...
Sorry, an error occurred while loading the content.
 

RE: [id-ruby] Numpang nanya doong...

Expand Messages
  • Ignatius Reza Lesmana
    Matcher defaultnya ngetest ke subject .. karena di subject block nya di set ke @faculty .. di should_be_valid jg ngetest ke @faculty  Btw.. before block yg
    Message 1 of 8 , Sep 28, 2013
      Matcher defaultnya ngetest ke "subject" .. karena di subject block nya di set ke @faculty .. di should_be_valid jg ngetest ke @faculty 

      Btw.. before block yg pertama redundant tuh... bisa dihapus aja.. langsung di subject block nya panggil FactoryGirl.create nya..



      -------- Original message --------
      From: Fauzan Qadri <ojankill@...>
      Date: 28/09/2013 7:50 PM (GMT+08:00)
      To: id-ruby@yahoogroups.com
      Subject: [id-ruby] Numpang nanya doong...


      Sore kak / bang…
      btw salam kenal yaa semua nyaa…

      ane lagi belajar2 testing pake rspec nih kak / bang…

      ane punya contoh kasus kaya gini…

      ---------------------------------------------------------------------------------------

      model/faculty.rb
      ----------------------
      class Faculty < ActiveRecord::Base
      validates :name, presence: true, uniqueness: true
      end

      spec/factories.rb
      -----------------------
      FactoryGirl.define do
      factory :faculty do 
       name "Some Faculty Name" 
       description "description for faculty name" 
       end
      end

      spec/models/faculty_spec.rb
      ---------------------------------------
      describe Faculty do
      before {@faculty = FactoryGirl.create(:faculty)}
      subject {@faculty}

      it { should be_valid }

      context "Ketika Nama Fakultas telah ada" do
      before do
      faculty_with_same_name = @...
      faculty_with_same_name.save
      end
      it { should_not be_valid }
      end
      end

      --------------------------------------------------------------------------------------

      pas jalanin dia hasilnya kek gini…


      nah yang ane mau tanyain…

      sebener nya " it { should_not be_valid } " pads context "Ketika Nama Fakultas telah ada" itu nge-test yang mana…?

      ketika di faculty_spec.rb ane ubah jadi…

      ---------------------------------------------------------------------------------------------------------------------------------
      spec/models/faculty_spec.rb
      ---------------------------------------------------------------------------------------------------------------------------------
      describe Faculty do
      before {@faculty = Faculty.new({name: "Some Name", description: "Simple description"})}
      subject {@faculty}

      it { should be_valid }

      context "Ketika Nama Fakultas telah ada" do
      before do
      faculty_with_same_name = @...
      faculty_with_same_name.save
      end
      it { should_not be_valid }
      end
      end
      ---------------------------------------------------------------------------------------------------------------------------------

      hasil test nya jadi pas…

      sekalian, kalo mau belajar test harus mulai dari mana yaa?

      mohon pencerahan nya yaa kakak/abang sekaliaan…

      maap sebelum nya kalo bahasa ane kurang di mengrtii...
    • aviandri hidayat
      Sekilas liat sih spec yg pertama : - karena subject nya @faculty, ketika di assert it{should_not be_valid} hasilnya akan failed, karena @faculty sudah dicreate
      Message 2 of 8 , Sep 28, 2013
        Sekilas liat sih spec yg pertama :
        - karena subject nya @faculty, ketika di assert it{should_not be_valid} hasilnya akan failed, karena @faculty sudah dicreate terlebih dahulu ketika belom ada data di test db. 
        - Seharunya yg di assert should_not be_valid nya faculty_with_same_name

        Kind regards,
        Aviandri

        Sent from Mailbox for iPhone


        On Sat, Sep 28, 2013 at 6:50 PM, Fauzan Qadri <ojankill@...> wrote:

        Sore kak / bang…

        btw salam kenal yaa semua nyaa…

        ane lagi belajar2 testing pake rspec nih kak / bang…

        ane punya contoh kasus kaya gini…

        ---------------------------------------------------------------------------------------

        model/faculty.rb
        ----------------------
        class Faculty < ActiveRecord::Base
        validates :name, presence: true, uniqueness: true
        end

        spec/factories.rb
        -----------------------
        FactoryGirl.define do
        factory :faculty do 
         name "Some Faculty Name" 
         description "description for faculty name" 
         end
        end

        spec/models/faculty_spec.rb
        ---------------------------------------
        describe Faculty do
        before {@faculty = FactoryGirl.create(:faculty)}
        subject {@faculty}

        it { should be_valid }

        context "Ketika Nama Fakultas telah ada" do
        before do
        faculty_with_same_name = @...
        faculty_with_same_name.save
        end
        it { should_not be_valid }
        end
        end

        --------------------------------------------------------------------------------------

        pas jalanin dia hasilnya kek gini…

        <Screen Shot 2013-09-28 at 6.39.09 PM.png>

        nah yang ane mau tanyain…

        sebener nya " it { should_not be_valid } " pads context "Ketika Nama Fakultas telah ada" itu nge-test yang mana…?

        ketika di faculty_spec.rb ane ubah jadi…

        ---------------------------------------------------------------------------------------------------------------------------------
        spec/models/faculty_spec.rb
        ---------------------------------------------------------------------------------------------------------------------------------
        describe Faculty do
        before {@faculty = Faculty.new({name: "Some Name", description: "Simple description"})}
        subject {@faculty}

        it { should be_valid }

        context "Ketika Nama Fakultas telah ada" do
        before do
        faculty_with_same_name = @...
        faculty_with_same_name.save
        end
        it { should_not be_valid }
        end
        end
        ---------------------------------------------------------------------------------------------------------------------------------

        hasil test nya jadi pas…

        sekalian, kalo mau belajar test harus mulai dari mana yaa?

        mohon pencerahan nya yaa kakak/abang sekaliaan…

        maap sebelum nya kalo bahasa ane kurang di mengrtii...

      • Fauzan Qadri
        okee deeh... makasih yaa kak, ignatius reza lesmana, aviandri hidayat, sama ahmy yulrizka atas penjelasan nyaa� ... okee deeh... makasih yaa kak, ignatius reza
        Message 3 of 8 , Sep 28, 2013
          okee deeh...
          makasih yaa kak, ignatius reza lesmana, aviandri hidayat, sama ahmy yulrizka atas penjelasan nyaa…


          On Sep 28, 2013, at 9:27 PM, Ignatius Reza Lesmana <lyoneil_de_sire@...> wrote:

           

          Matcher defaultnya ngetest ke "subject" .. karena di subject block nya di set ke @faculty .. di should_be_valid jg ngetest ke @faculty 


          Btw.. before block yg pertama redundant tuh... bisa dihapus aja.. langsung di subject block nya panggil FactoryGirl.create nya..



          -------- Original message --------
          From: Fauzan Qadri <ojankill@...>
          Date: 28/09/2013 7:50 PM (GMT+08:00)
          To: id-ruby@yahoogroups.com
          Subject: [id-ruby] Numpang nanya doong...


          Sore kak / bang…
          btw salam kenal yaa semua nyaa…

          ane lagi belajar2 testing pake rspec nih kak / bang…

          ane punya contoh kasus kaya gini…

          ---------------------------------------------------------------------------------------

          model/faculty.rb
          ----------------------
          class Faculty < ActiveRecord::Base
          validates :name, presence: true, uniqueness: true
          end

          spec/factories.rb
          -----------------------
          FactoryGirl.define do
          factory :faculty do 
           name "Some Faculty Name" 
           description "description for faculty name" 
           end
          end

          spec/models/faculty_spec.rb
          ---------------------------------------
          describe Faculty do
          before {@faculty = FactoryGirl.create(:faculty)}
          subject {@faculty}

          it { should be_valid }

          context "Ketika Nama Fakultas telah ada" do
          before do
          faculty_with_same_name = @...
          faculty_with_same_name.save
          end
          it { should_not be_valid }
          end
          end

          --------------------------------------------------------------------------------------

          pas jalanin dia hasilnya kek gini…


          nah yang ane mau tanyain…

          sebener nya " it { should_not be_valid } " pads context "Ketika Nama Fakultas telah ada" itu nge-test yang mana…?

          ketika di faculty_spec.rb ane ubah jadi…

          ---------------------------------------------------------------------------------------------------------------------------------
          spec/models/faculty_spec.rb
          ---------------------------------------------------------------------------------------------------------------------------------
          describe Faculty do
          before {@faculty = Faculty.new({name: "Some Name", description: "Simple description"})}
          subject {@faculty}

          it { should be_valid }

          context "Ketika Nama Fakultas telah ada" do
          before do
          faculty_with_same_name = @...
          faculty_with_same_name.save
          end
          it { should_not be_valid }
          end
          end
          ---------------------------------------------------------------------------------------------------------------------------------

          hasil test nya jadi pas…

          sekalian, kalo mau belajar test harus mulai dari mana yaa?

          mohon pencerahan nya yaa kakak/abang sekaliaan…

          maap sebelum nya kalo bahasa ane kurang di mengrtii...


        • Ronny Haryanto
          Halo, Saran saya kalo masih belajar, mendingan jangan diribetin dengan FactoryGirl, Machinist, dsb dulu. Kalo saya yg nulis tesnya, kira2 gini: class Faculty
          Message 4 of 8 , Sep 29, 2013
            Halo,

            Saran saya kalo masih belajar, mendingan jangan diribetin dengan
            FactoryGirl, Machinist, dsb dulu. Kalo saya yg nulis tesnya, kira2 gini:

            class Faculty < ActiveRecord::Base
            validates :name, presence: true, uniqueness: true
            end

            describe Faculty do
            subject(:faculty) { Faculty.new(name: name, description: description) }
            let(:name) { "Fakultas Pengetesan" }
            let(:description) { "Kerjanya ngetes mulu" }

            specify { expect(faculty).to be_valid }

            context "when a faculty with the same name already exists" do
            before { Faculty.create!(name: name) }
            specify { expect(faculty).to_not be_valid }
            end

            context "when a faculty name is blank" do
            let(:name) { "" }
            specify { expect(faculty).to_not be_valid }
            end
            end


            Subject itu adalah yg subjek yg sedang dites. Saya lebih suka memberi nama
            subjectnya dan mengacunya pake nama (e.g. `faculty`) ketimbang pake
            `subject`, karena lebih jelas.

            `specify` ini format baru yg disarankan skrg dari `it { should ... }`
            (deprecated). Ini versi lebih singkat aja dibanding nulis:

            it "should not be valid" do
            expect(faculty).to_not be_valid
            end

            Si RSpec bisa generate sendiri label "should not be valid" itu dari specnya
            (makanya namanya specify).

            `expect(...).to ...` ini juga versi baru dari `blah.should ...` yg bakal
            deprecated soon.

            `faculty` tidak ada yg perlu disave untuk bisa dites, kecuali ngetes
            uniqueness. Ini kunci kenapa tes anda failing. Karena subjek anda dibikin
            pake FactoryGirl.create yg akan bikin AR object dan ngesave di DB.
            Sedangkan Faculty.new (atau FactoryGirl.build) akan bikin AR objectnya
            doang tanpa ngesave di DB.

            Poin penting lainnya, subject dan let itu lazily evaluated, jadi pas
            dipanggil baru dijalanin blocknya, sedangkan before block jalan duluan
            sebelum spec/it. Di tes anda, before block yg paling pertama itu dijalankan
            duluan, jadi @faculty udah disave ke DB duluan. Lalu baru before block yg
            di dalem context dijalanin, nah ini urutannya kan salah setupnya.
            Seharusnya yg kita mau adalah before block di dalem context ini dijalanin
            duluan, baru subjeknya dibikin. Makanya lebih baik subject itu lazily
            evaluated (bikin objectnya di dalam blocknya subject, seperti contoh saya),
            jangan dibikin di dalam before block.

            Ronny

            2013/9/28 Fauzan Qadri <ojankill@...>

            > Sore kak / bang…
            > btw salam kenal yaa semua nyaa…
            >
            > ane lagi belajar2 testing pake rspec nih kak / bang…
            >
            > ane punya contoh kasus kaya gini…
            >
            >
            > ---------------------------------------------------------------------------------------
            >
            > model/faculty.rb
            > ----------------------
            > class Faculty < ActiveRecord::Base
            > validates :name, presence: true, uniqueness: true
            > end
            >
            > spec/factories.rb
            > -----------------------
            > FactoryGirl.define do
            > factory :faculty do
            > name "Some Faculty Name"
            > description "description for faculty name"
            > end
            > end
            >
            > spec/models/faculty_spec.rb
            > ---------------------------------------
            > describe Faculty do
            > before {@faculty = FactoryGirl.create(:faculty)}
            > subject {@faculty}
            >
            > it { should be_valid }
            >
            > context "Ketika Nama Fakultas telah ada" do
            > before do
            > faculty_with_same_name = @...
            > faculty_with_same_name.save
            > end
            > it { should_not be_valid }
            > end
            > end
            >
            >
            > --------------------------------------------------------------------------------------
            >
            > pas jalanin dia hasilnya kek gini…
            >
            >
            > nah yang ane mau tanyain…
            >
            > sebener nya " it { should_not be_valid } " pads context "Ketika Nama
            > Fakultas telah ada" itu nge-test yang mana…?
            >
            > ketika di faculty_spec.rb ane ubah jadi…
            >
            >
            > ---------------------------------------------------------------------------------------------------------------------------------
            > spec/models/faculty_spec.rb
            >
            > ---------------------------------------------------------------------------------------------------------------------------------
            > describe Faculty do
            > before {@faculty = Faculty.new({name: "Some Name", description: "Simple
            > description"})}
            > subject {@faculty}
            >
            > it { should be_valid }
            >
            > context "Ketika Nama Fakultas telah ada" do
            > before do
            > faculty_with_same_name = @...
            > faculty_with_same_name.save
            > end
            > it { should_not be_valid }
            > end
            > end
            >
            > ---------------------------------------------------------------------------------------------------------------------------------
            >
            > hasil test nya jadi pas…
            >
            > sekalian, kalo mau belajar test harus mulai dari mana yaa?
            >
            > mohon pencerahan nya yaa kakak/abang sekaliaan…
            >
            > maap sebelum nya kalo bahasa ane kurang di mengrtii...
            >


            [Non-text portions of this message have been removed]
          • Ronny Haryanto
            ... Walaupun hasilnya sama, spesifikasinya akan jadi agak aneh ketika dibaca kalo kayak gitu, karena yg dites bukan lagi subjeknya. Akan lebih tidak
            Message 5 of 8 , Sep 29, 2013
              On Sun, Sep 29, 2013 at 5:15 AM, aviandri hidayat <aviandri@...> wrote:
              - Seharunya yg di assert should_not be_valid nya faculty_with_same_name

              Walaupun hasilnya sama, spesifikasinya akan jadi agak aneh ketika dibaca kalo kayak gitu, karena yg dites bukan lagi subjeknya. Akan lebih tidak membingungkan kalo "it" selalu mengacu ke `subject`.

              Ronny
            • Fauzan Qadri
              okeyy di mengerti bang ronnyà :) mantaabà ... okeyy di mengerti bang ronnyà :) mantaabà On Sep 30, 2013, at 8:01 AM, Ronny Haryanto
              Message 6 of 8 , Sep 30, 2013
                okeyy
                di mengerti bang ronny… :)
                mantaab…

                On Sep 30, 2013, at 8:01 AM, Ronny Haryanto <ronny@...> wrote:

                 

                Halo,

                Saran saya kalo masih belajar, mendingan jangan diribetin dengan
                FactoryGirl, Machinist, dsb dulu. Kalo saya yg nulis tesnya, kira2 gini:

                class Faculty < ActiveRecord::Base
                validates :name, presence: true, uniqueness: true
                end

                describe Faculty do
                subject(:faculty) { Faculty.new(name: name, description: description) }
                let(:name) { "Fakultas Pengetesan" }
                let(:description) { "Kerjanya ngetes mulu" }

                specify { expect(faculty).to be_valid }

                context "when a faculty with the same name already exists" do
                before { Faculty.create!(name: name) }
                specify { expect(faculty).to_not be_valid }
                end

                context "when a faculty name is blank" do
                let(:name) { "" }
                specify { expect(faculty).to_not be_valid }
                end
                end

                Subject itu adalah yg subjek yg sedang dites. Saya lebih suka memberi nama
                subjectnya dan mengacunya pake nama (e.g. `faculty`) ketimbang pake
                `subject`, karena lebih jelas.

                `specify` ini format baru yg disarankan skrg dari `it { should ... }`
                (deprecated). Ini versi lebih singkat aja dibanding nulis:

                it "should not be valid" do
                expect(faculty).to_not be_valid
                end

                Si RSpec bisa generate sendiri label "should not be valid" itu dari specnya
                (makanya namanya specify).

                `expect(...).to ...` ini juga versi baru dari `blah.should ...` yg bakal
                deprecated soon.

                `faculty` tidak ada yg perlu disave untuk bisa dites, kecuali ngetes
                uniqueness. Ini kunci kenapa tes anda failing. Karena subjek anda dibikin
                pake FactoryGirl.create yg akan bikin AR object dan ngesave di DB.
                Sedangkan Faculty.new (atau FactoryGirl.build) akan bikin AR objectnya
                doang tanpa ngesave di DB.

                Poin penting lainnya, subject dan let itu lazily evaluated, jadi pas
                dipanggil baru dijalanin blocknya, sedangkan before block jalan duluan
                sebelum spec/it. Di tes anda, before block yg paling pertama itu dijalankan
                duluan, jadi @faculty udah disave ke DB duluan. Lalu baru before block yg
                di dalem context dijalanin, nah ini urutannya kan salah setupnya.
                Seharusnya yg kita mau adalah before block di dalem context ini dijalanin
                duluan, baru subjeknya dibikin. Makanya lebih baik subject itu lazily
                evaluated (bikin objectnya di dalam blocknya subject, seperti contoh saya),
                jangan dibikin di dalam before block.

                Ronny

                2013/9/28 Fauzan Qadri <ojankill@...>

                > Sore kak / bang…
                > btw salam kenal yaa semua nyaa…
                >
                > ane lagi belajar2 testing pake rspec nih kak / bang…
                >
                > ane punya contoh kasus kaya gini…
                >
                >
                > ----------------------------------------------------------
                >
                > model/faculty.rb
                > ----------------------
                > class Faculty < ActiveRecord::Base
                > validates :name, presence: true, uniqueness: true
                > end
                >
                > spec/factories.rb
                > -----------------------
                > FactoryGirl.define do
                > factory :faculty do
                > name "Some Faculty Name"
                > description "description for faculty name"
                > end
                > end
                >
                > spec/models/faculty_spec.rb
                > ---------------------------------------
                > describe Faculty do
                > before {@faculty = FactoryGirl.create(:faculty)}
                > subject {@faculty}
                >
                > it { should be_valid }
                >
                > context "Ketika Nama Fakultas telah ada" do
                > before do
                > faculty_with_same_name = @...
                > faculty_with_same_name.save
                > end
                > it { should_not be_valid }
                > end
                > end
                >
                >
                > ----------------------------------------------------------
                >
                > pas jalanin dia hasilnya kek gini…
                >
                >
                > nah yang ane mau tanyain…
                >
                > sebener nya " it { should_not be_valid } " pads context "Ketika Nama
                > Fakultas telah ada" itu nge-test yang mana…?
                >
                > ketika di faculty_spec.rb ane ubah jadi…
                >
                >
                > ----------------------------------------------------------
                > spec/models/faculty_spec.rb
                >
                > ----------------------------------------------------------
                > describe Faculty do
                > before {@faculty = Faculty.new({name: "Some Name", description: "Simple
                > description"})}
                > subject {@faculty}
                >
                > it { should be_valid }
                >
                > context "Ketika Nama Fakultas telah ada" do
                > before do
                > faculty_with_same_name = @...
                > faculty_with_same_name.save
                > end
                > it { should_not be_valid }
                > end
                > end
                >
                > ----------------------------------------------------------
                >
                > hasil test nya jadi pas…
                >
                > sekalian, kalo mau belajar test harus mulai dari mana yaa?
                >
                > mohon pencerahan nya yaa kakak/abang sekaliaan…
                >
                > maap sebelum nya kalo bahasa ane kurang di mengrtii...
                >

                [Non-text portions of this message have been removed]


              Your message has been successfully submitted and would be delivered to recipients shortly.