Jump to content
php.lv forumi

Kā notestēt


qwerty

Recommended Posts

Nesaprotu, kā pareizi ar phpunit notestēt šādu situāciju (funkcionālais tests):

 

Aplikācijai ir route /get_articles, kas pieņem GET parametru order_by (pieļaujamās vērtības - timestamp, likes, stars, priority)

Šis route aiziet uz kontrolleri, kas izdara dažas maznozīmīgas lietas, un tad izsauc Article modeli, kas pieprasa datus no DB.

Testa vidē datubāzē ir 5 zināmi article.

 

Tātad, man nav skaidrs, ko šeit testēt.

Ja tas ir funkcionālais tests, tad laikam es sagaidu, ka pieprasot /get_articles, ja visi parametri ir pareizi:

  • Response kods ir 200
  • Atbilde ir JSON, kurā ir atslēga articles
  • Articli ir sakārtoti pēc order_by parametra - kā šito realizēt un vai vispār vajag?

Ja parametri nav pareizi vai nav vispār padoti:

  • Response kods ir 422

 

Neskaidrība ir ar to order_by parametra padošanas testēšanu. Tā kā testa datu bāzē ir tikai 5 article, tad es teorētiski varu notestēt vai iegūtie JSON dati ir sakārtoti pareizi. Kā to darīt:

  • vai man funkcionālajā testā uztaisīt atsevišķu query, kas no datubāzes pieprasa articles ar attiecīgu order by X ?
  • vai arī man testā hardkodēt to datu JSON, kas ir datubāzē? (sanāk, ka nav DRY, jau dati atkārtojas gan datubāzes seedā, gan testā)
  • Vai arī to vispār nelikt funkcionālajā testā un jāraksta Article modeļa unit tests?
Edited by qwerty
Link to comment
Share on other sites

>kā šito realizēt

(pieļaujamās vērtības - timestamp, likes, stars, priority)

attiecīgi savus testa datus hardkodē testā like so:

test_data: {
    by_timestamp: [ article1 (id, visticamāk), article2, article3, article4, article5 ],
    by_likes: [ article3, article2, article1, article5, article4 ]
    ...
}

Un salīdzini tava route atgriezto datu secību ar šiem.

 

>vai vispār vajag?

Subjective. Ja tas order_by tiek padots datubāzes kverijam (tieši vai netieši, vienalga), tad nepareiza kārtošana tur principā nevar būt, ja vien nav vēl kādi citi ORDER BY nosacījumi, kuri kaut ko nojauc.

Edited by jurchiks
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...