Fakultas Ilmu Komputer UI

Commit 98bab071 authored by Farah Alhaniy's avatar Farah Alhaniy
Browse files

Merge branch 'master' of...

Merge branch 'master' of https://gitlab.cs.ui.ac.id/pmpl/practice-collection/2019/1606821886-practice
parents c579f123 bb3c87ba
Pipeline #22597 failed with stages
in 8 minutes and 55 seconds
# 1606821886-practice
Herokuapp : https://pmpl-farah.herokuapp.com/
## Exercise 3
**Proses test isolation**
Setiap menjalankan functional test, proses pengujian sering kali tertinggal di database, dan itu akan menggangu jalannya tes berikutnya. Dengan mengaplikasikan test isolation, Django test runner secara otomatis membuat database pengujian baru (terpisah dari yang asli), yang dapat dengan aman diset ulang sebelum setiap tes individu dijalankan.
Tes yang berbeda tidak boleh saling memengaruhi. Django test runner membantu dengan membuat basis data test, yang dibersihkan di antara setiap dijalankannya test.
**Perbedaan design baru dengan design sebelumnya**
Potongan code di bawah menunjukkan perubahan yang terjadi pada functional_tests. Perubahan terjadi karena adanya implementasi test isolation menggunakan LiveServerTestCase. LiveServerTestCase akan secara otomatis membuat database uji (seperti dalam unit test run), dan memulai server pengembangan untuk menjalankan tes fungsional. Test runner akan menemukan file apa pun yang namanya dimulai dengan test.
```diff
+from selenium.common.exceptions import WebDriverException
+from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
import time
import unittest
import environ
-env = environ.Env(DEBUG=(bool, False))
-environ.Env.read_env('.env')
+MAX_WAIT = 10
-class NewVisitorTest(unittest.TestCase):
+class NewVisitorTest(LiveServerTestCase):
[...]
```
Potongan code dibawah menunjukkan perubahan yang terjadi untuk mengubah implementasi url menjadi **isolated url**.
```diff
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
- url = env("HEROKU_APP_HOST", default='http://localhost:8000')
+ url = self.live_server_url
self.browser.get(url)
[...]
```
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