@@ -62,6 +62,50 @@ unittest.mock akan menghasilkan class Mock yang bisa digunakan untuk buat copyan
Patch akan berfungsi ketika kita replace fungsi send_mail ke fake_send_mail yang sesuai pada penjelasan di atas.
lalu mock_send_mail sebagai argumen yang dimasukan oleh patch function. Ketika melakukan test send_mail tidak dipanggil tetapi mock_send_mail yang akan terpanggil. Jadi ini membuat fungsi views tidak akan kirim email saat kita melakukan test tersebut
## Cerita Latihan8b mocking dapat membuat implementasi yang kita buat tightly coupled
Example pada contoh message sukses di account/views.py
def send_login_email(request):
email = request.POST['email']
token = Token.objects.create(email=email)
url = request.build_absolute_uri(
reverse('login') + '?token=' + str(token.uid)
)
messages.success(
request,
"Check your email, we've sent you a link you can use to log in."
)
di accounts/tests/test_views.py
def test_adds_success_message(self):
response = self.client.post(
"/accounts/send_login_email",
data={"email": "edith@example.com"},
follow=True,
)
message = list(response.context["messages"])[0]
self.assertEqual(
message.message,
"Check your email, we've sent you a link you can use to log in.",
Mocking akan membuat implementasi code yg kita bbuat menjadi tightly coupled karena mock sering test detail dri implementasi fungsi code.
## Cerita Latihan04 Prettification
Latihan ini bertujuan untuk implementasi secara increment, yang dimaksud adalah kita membuat perlahan perlahan tidak langsung semuanya dibuat. Lalu dilatihan 4 ini membuat styling yang membuat rusak functional test kita dan disini juga saya belaajar css pada aplikasi yang kita buat. Disini kita membuat static files juga u/ css untuk halaman menjadi lebih rapih dari sebelumnya. Mmebuat juga function action di form classs yang berada di home.html dan mengimplementasi function2 baru yang berada di class views.py yang membuat jika ada todo list terbaru dari user yang baru maka akan dibuatkan alamat url baru untuk user baru , jika user sudah ada dengan url tadi maka akan ditambahkan ke list todo yang ada.