Ben sadece ortak API'leri kullanarak bir sistemi test entegrasyon . Ben böyle bir şey görünüyor bir test var:
def testAllTheThings():
email = create_random_email()
password = create_random_password()
ok = account_signup(email, password)
assert ok
url = wait_for_confirmation_email()
assert url
ok = account_verify(url)
assert ok
token = get_auth_token(email, password)
a = do_A(token)
assert a
b = do_B(token, a)
assert b
c = do_C(token, b)
# ...and so on...
Temel olarak, tek bir işlemin tüm "akışını" test etmeye çalışıyorum. Akıştaki her adım, bir sonraki adımın başarılı olmasına bağlıdır. Kendimi harici API ile kısıtladığım için, değerleri veritabanına alamıyorum.
Yani, ya “A; assert; B; assert; ° C; iddia ediyorum ... "ya da her test yönteminin bir şey yapmadan önce önceki testin sonuçlarına ihtiyaç duyduğu ayrı test yöntemlerine ayırıyorum:
def testAccountSignup():
# etc.
return email, password
def testAuthToken():
email, password = testAccountSignup()
token = get_auth_token(email, password)
assert token
return token
def testA():
token = testAuthToken()
a = do_A(token)
# etc.
Bence bu kokuyor. Bu testleri yazmanın daha iyi bir yolu var mı?