Flask Academy · Oppitunti

Testiclient ja fixturet

Käynnistä sovellus ja client testejä varten.

Oppitunti 1/413 vaihetta

Testiclient ja fixturet on ilmainen Flask Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Flask Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Miksi Flask-sovellusta kannattaa testata

Testien avulla voitte muuttaa koodia turvallisin mielin. pytest-ohjelmalla voitte varmistaa sekunneissa, että jokainen reitti toimii edelleen, sen sijaan että napsauttaisitte sovellusta käsin läpi. 🧪

Tutustu testiasiakkaaseen

Flask sisältää valeverkkoselaimen nimeltä test client. Se kutsuu reittejänne muistissa ilman oikeaa palvelinta tai verkkoa.

client = app.test_client()
resp = client.get('/')

Hae asiakas sovelluksesta

Luotte asiakkaan kutsumalla app.test_client()-metodia. Se palauttaa olion, jonka metodit vastaavat oikeita HTTP-verbejä, kuten get ja post.

from app import app
client = app.test_client()

Lähetä pyyntö ja saa vastaus

Kutsumalla client.get('/')-metodia saatte vastausolion. Tutkitte sitä kuten oikeaa vastausta, mutta kaikki suoritettiin välittömästi Pythonin sisällä.

resp = client.get('/')
print(resp.status_code)

Mikä on fixture

fixture on uudelleenkäytettävää alustuskoodia, jonka pytest suorittaa ennen testiä. Sen sijaan että rakentaisitte asiakkaan kaikkialla uudelleen, määrittelette sen kerran ja käytätte uudelleen.

Kirjoita asiakas-fixture

Koristelkaa funktio @pytest.fixture-dekorattorilla ja palauttakaa testiasiakas yield-lauseella. Jokainen testi, joka nimeää sen argumentikseen, saa uuden asiakkaan.

@pytest.fixture
def client():
    yield app.test_client()

Pyydä fixture nimellä

Käyttääksenne fixturea lisätkää sen nimi test argument -argumentiksi. Pytest havaitsee vastaavuuden ja lisää arvon automaattisesti.

def test_home(client):
    resp = client.get('/')
    assert resp.status_code == 200

Yield ja return fixtureissa

yield-lauseen avulla voitte suorittaa siivouksen testin päätyttyä. Ennen yield-lauseketta oleva koodi alustaa ympäristön, sen jälkeinen koodi purkaa sen.

@pytest.fixture
def client():
    yield app.test_client()
    print('cleanup here')

Mihin fixturet sijoitetaan

Sijoittakaa jaetut fixturet tiedostoon nimeltä conftest.py. Pytest löytää sen automaattisesti, joten jokainen testitiedosto voi käyttää näitä fixtureja ilman tuontia.

Testitiedostojen nimeäminen

Pytest löytää tiedostot, joiden nimi alkaa merkkijonolla test_, sekä samalla tavalla nimetyt funktiot. Noudattakaa tätä mallia, niin testit suoritetaan yhdellä komennolla.

# file: test_routes.py
def test_home(client):
    ...

Suorita koko testikokoelma

Suorittakaa projektin juurihakemistosta päätelaitteessa komento pytest. Se kerää kaikki testitiedostot, suorittaa testit ja tulostaa selkeän yhteenvedon onnistumisista ja epäonnistumisista.

$ pytest
2 passed in 0.04s

Pikatarkistus

Haluatte uudelleenkäytettävän testiasiakkaan. Miten toimitte?

Kertaus: asiakas ja fixturet

Tutustuit muistissa olevaan test client -asiakasohjelmaan ja opit jakamaan sen conftest.py-tiedostossa olevan fixturen avulla. Nyt jokainen testi alkaa valmiilla asiakasohjelmalla. 🎉

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Testiclient ja fixturet” ilmainen?

Kyllä – oppitunnin ”Testiclient ja fixturet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Flask Academy-kurssin, päivitä CoddyKit PROhon. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Testiclient ja fixturet”?

Käynnistä sovellus ja client testejä varten. Harjoittelet Flask Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Flask Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Flask Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Testiclient ja fixturet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Flask Academy-oppitunnilla?

Kyllä. Jokainen Flask Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Testiclient ja fixturet
  2. Tarkista reitit ja JSON assertilla
  3. Eristä testit testitietokannalla
  4. Testaa todennettuja endpointeja
← Takaisin: Flask Academy