Fakultas Ilmu Komputer UI

Commit b47665fb authored by Yumna Pratista's avatar Yumna Pratista
Browse files

Merge branch 'testinggoat/ch6' of...

Merge branch 'testinggoat/ch6' of https://gitlab.cs.ui.ac.id/pmpl/practice-collection/2019/1606836976-practice into testinggoat/ch6
parents 0a45f69e d925125a
Pipeline #21523 failed with stages
in 1 minute and 8 seconds
# 1606836976-practice
HEROKU LINK : www.homepageyumna.herokuapp.com
\ No newline at end of file
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
from selenium import webdriver
import unittest
from selenium.webdriver.common.keys import Keys
import time
class NewVisitorTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
def tearDown(self):
self.browser.quit()
def check_for_row_in_list_table(self, row_text):
table = self.browser.find_element_by_id('id_list_table')
rows = table.find_elements_by_tag_name('tr')
self.assertIn(row_text, [row_text for row in rows])
def test_can_start_a_list_and_retrieve_it_later(self):
# Edith has heard about a cool new online to-do app. She goes
# to check out its homepage
self.browser.get('http://localhost:8000')
# She notices the page title and header mention to-do lists
self.assertIn('To-Do', self.browser.title)
header_text = self.browser.find_element_by_tag_name('h1').text
self.assertIn('To-Do', header_text)
inputbox = self.browser.find_element_by_id('id_new_item')
inputbox.send_keys('Buy peacock feathers')
inputbox.send_keys(Keys.ENTER)
time.sleep(5)
# The page updates again, and now shows both items on her list
self.check_for_row_in_list_table('1: Buy peacock feathers')
# She is invited to enter a to-do item straight away
# There is still a text box inviting her to add another item. She
# enters "Use peacock feathers to make a fly" (Edith is very
# methodical)
inputbox = self.browser.find_element_by_id('id_new_item')
inputbox.send_keys('Use peacock feathers to make a fly')
inputbox.send_keys(Keys.ENTER)
time.sleep(5)
# The page updates again, and now shows both items on her list
self.check_for_row_in_list_table('1: Buy peacock feathers')
self.check_for_row_in_list_table('2: Use peacock feathers to make a fly')
# Edith wonders whether the site will remember her list. Then she sees
# that the site has generated a unique URL for her -- there is some
# explanatory text to that effect.
self.fail('Finish the test!')
if __name__ == '__main__': #
unittest.main(warnings='ignore') #
\ No newline at end of file
......@@ -879,6 +879,7 @@ Thread] WARNING: pipe e[rCror: 109: file z:/task_1566861941/build/src/ipc/chromi
###!!! [Child][MessageChannel::SendAndWait] Error: Channel error: cannot send/recv
<<<<<<< HEAD
1569431343047 mozrunner::runner INFO Running command: "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\Users\\YUMNAP~1\\AppData\\Local\\Temp\\rust_mozprofileJ5CGbW"
1569431347956 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1569431347957 addons.webextension.screenshots@mozilla.org WARN Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
......@@ -1195,3 +1196,5 @@ JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't fin
532, Ch
###!!! [Child][MessageChannel::SendAndWait] Error: Channel error: cannot send/recv
=======
>>>>>>> d925125adcaf436dfff63164bf292ce541b75b0d
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