Fakultas Ilmu Komputer UI

Commit 78784f90 authored by Rani Lasma Uli's avatar Rani Lasma Uli
Browse files

update README, done exercise 6

parent 55481f85
Pipeline #24111 passed with stages
in 7 minutes and 58 seconds
......@@ -194,6 +194,26 @@ Lalu untuk membunuh Mutant 2, dibutuhkan jumlah item tepat 5, sehingga Mutant 2
self.assertTrue("oh tidak" in html)
```
#### Django-mutpy
Automasi dari mutation testing dapat dilakukan dengan bantuan library Django-mutpy. Library ini berguna untuk memproduksi mutant. Setiap mutant yang dapat dibunuh dengan unittest yang telah dibuat akan meningkatkan mutant score. Dalam hal ini mutant score yang saya miliki rendah oleh karena mutasi yang dilakukan mayoritas untuk perihal data migration dan appconfig. Akan tetapi, salah satu dari mutant tersebut ada yang masih `survive` dengan unittest saya. Berikut adalah mutant yang masih hidup.
```python
from lists.models import Item
5: response = {}
6: def index(request):
- 7: if request.method == 'POST':
+ 7: if not (request.method == 'POST'):
8: Item.objects.create(text=request.POST['item_text'])
9: return redirect('/')
10:
11: items = Item.objects.all()
```
Untuk membunuh mutant ini, saya menambah test seperti berikut ini.
```python
def test_GET_will_return_ok_response(self):
response = self.client.get(TO_DO_LIST_URL)
self.assertEqual(response.status_code, 200)
self.assertFalse('location' in response)
```
Hal ini akan membuat mutant menghasilkan kode response 302, sedangkan kode yang sebenarnya akan mengembalikan kode response 200.
\ No newline at end of file
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