Fakultas Ilmu Komputer UI

Commit 6418cef9 authored by Yumna Pratista Tastaftian's avatar Yumna Pratista Tastaftian
Browse files

Merge branch 'master' of...

Merge branch 'master' of https://gitlab.cs.ui.ac.id/pmpl/practice-collection/2019/1606836976-practice
parents 06fc25b5 3352025c
Pipeline #24896 failed with stages
in 2 minutes and 3 seconds
# 1606836976-practice
HEROKU LINK : www.homepageyumna.herokuapp.com
1. Exercise 3 - Lab 6 (obey the testing goat)
Proses test isolation yang dilakukan :
* Pada exercise ini saya mengimplementasikan isolation test terutama pada functional test agar saat menjalankan test tersebut tidak mempengaruhi database aslinya.
* Hal ini dilakukan dengan cara mengimplementasikan LiveServerTestCase pada functional_test.
* Berikut ini adalah yang dilakukan oleh LiveServerTestCase :
1. Memiliki atribut live_server_url, yaitu url yang akan dikunjungi saat menjalankan functional_test
2. Menggunakan selenium dalam membuka web dengan url live_server_url
3. LiveServerTestCase akan membangun Django Server sehingga bisa membuka dan mengakses database yang terisolasi dari web aslinya
4. selenium akan membuka django server tersebut, melakukan fungsi sesuai dengan yang dispesifikasi pada functional_test dan menutupnya kembali setelah fungsi tersebut selesai di jalankan
* Perbedaan desain lama dan desain baru dari program yang dibentuk
1. Yang paling dominan dalam perubahan ini adalah implementasi dari LiveTesterTestCase
2. Yang berbeda dari desain lama adalah pemanggilan dan pengaksesan seleniumnya pada functional_test, dimana pada desain yang lama selenium memanggil web real dari web ini sehingga saat functional test berjalan pun web sebenernya juga berubah.
3. Untuk yang desain baru, disini dipanggil live_server_url pada saat menjalankan functional_test yang nantinya akan membentuk Django Server sendiri sehingga tidak menggunakan database dan web asli dari url yang sebenarnya.
4. time_sleep yang digunakan pun dirubah
\ No newline at end of file
# 1606836976-practice
HEROKU LINK : www.homepageyumna.herokuapp.com
1. Exercise 3 - Lab 6 (obey the testing goat)
Proses test isolation yang dilakukan :
* Pada exercise ini saya mengimplementasikan isolation test terutama pada functional test agar saat menjalankan test tersebut tidak mempengaruhi database aslinya.
* Hal ini dilakukan dengan cara mengimplementasikan LiveServerTestCase pada functional_test.
* Berikut ini adalah yang dilakukan oleh LiveServerTestCase :
1. Memiliki atribut live_server_url, yaitu url yang akan dikunjungi saat menjalankan functional_test
2. Menggunakan selenium dalam membuka web dengan url live_server_url
3. LiveServerTestCase akan membangun Django Server sehingga bisa membuka dan mengakses database yang terisolasi dari web aslinya
4. selenium akan membuka django server tersebut, melakukan fungsi sesuai dengan yang dispesifikasi pada functional_test dan menutupnya kembali setelah fungsi tersebut selesai di jalankan
* Perbedaan desain lama dan desain baru dari program yang dibentuk
1. Yang paling dominan dalam perubahan ini adalah implementasi dari LiveTesterTestCase
2. Yang berbeda dari desain lama adalah pemanggilan dan pengaksesan seleniumnya pada functional_test, dimana pada desain yang lama selenium memanggil web real dari web ini sehingga saat functional test berjalan pun web sebenernya juga berubah.
3. Untuk yang desain baru, disini dipanggil live_server_url pada saat menjalankan functional_test yang nantinya akan membentuk Django Server sendiri sehingga tidak menggunakan database dan web asli dari url yang sebenarnya.
4. time_sleep yang digunakan pun dirubah
3. Exercise 5
* Proses refactoring :
Refactoring sangat dibutuhkan dalam segala medan pemrograman, sesuai dengan teori yang ada dari buku, maka dengan bentuk TDD kita boleh membuat test passed terlebih dahulu saja, namun nantinya tetap harus direfactor untuk menjaga clean code.
Contoh yang ada pada exercise ini adalah dimana ada beberapa test yang ditulis berkali-kali sehingga program pun menjalankannya lebih dari sekali, sehingga hal tersebut harus dikurangi dengan cara menghapusnya agar hanya dijalankan sebanyak sekali.
* Proses managing test/test organization :
Managing test/test organization ini diperlukan untuk merapihkan dan memiliki tujuan untuk meningkatkan clean code, serta kita juga dapat lebih mudah dalam memilih test apa saja yang mau dijalankan karena setiap file test akan mengurus test pada dirinya sendiri saja.
......@@ -17,31 +17,6 @@ class HomePageTest(TestCase):
self.assertEqual(Item.objects.count(),1)
new_item = Item.objects.first()
self.assertEqual(new_item.text, 'A new list item')
# def test_redirects_after_POST(self):
# response = self.client.post('/lists/new', data={'item_text': 'A new list item'})
# self.assertRedirects(response, '/lists/the-only-list-in-the-world/')
# def test_if_item_smaller_than_5(self):
# response = self.client.get('/')
# self.assertIn('yey, waktunya libur', response.content.decode())
# def test_if_item_smaller_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# response = self.client.get('/')
# self.assertIn('sibuk tapi santai', response.content.decode())
# def test_if_item_more_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# Item.objects.create(text='itemey 3')
# Item.objects.create(text='itemey 4')
# Item.objects.create(text='itemey 5')
# Item.objects.create(text='itemey 6')
# response = self.client.get('/')
# self.assertIn('oh tidak', response.content.decode())
class ListViewTest(TestCase):
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment