Avatar billede jonas_h Nybegynder
14. februar 2009 - 23:03 Der er 7 kommentarer

NUnit problem

Har lige lavet en masse NUnits tests for et af mine projekter, og til min store skuffelse var samtlige tests failed. Kigger derefter nærmere på fejlbeskederne, og ser eksempelvis:

NUnit.Framework.AssertionException:  Expected: same as "Edit page"
  But was:  "Edit page"

Det synes jeg ser ret underligt ud! Bruger følgende kode i mine checks:

Assert.AreSame(t3.EditPage, t2.EditPage);

Har også prøver "AreEqual" men dette er vist ikke lavet til at sammenligne string-værdier direkte? Bruger jeg Equal metoden får jeg: NUnit.Framework.AssertionException: Assert.Equals should not be used for Assertions

Nogle som har en ide om hvad der foregår=
Avatar billede jonas_h Nybegynder
14. februar 2009 - 23:08 #1
Det skal lige siges, at det er værdier fra LinQ entities jeg bruger. Og de er f.eks angivet til nvarchar(256). Kan dette forklare en fejl jeg får når jeg bruger StringASsertion?

NUnit.Framework.AssertionException:  Expected string length 256 but was 5. Strings differ at index 5.
  Expected: "VPage                                                        ...", ignoring case
  But was:  "VPage"
  ----------------^
Avatar billede arne_v Ekspert
15. februar 2009 - 00:58 #2
Assert.AreSame tester for om det er samme objekt ikke for om værdierne er ens, så det er ikke overraskende at det test fejler !
Avatar billede arne_v Ekspert
15. februar 2009 - 00:59 #3
Og jeg har altid brugt Assert.AreEqual !
Avatar billede arne_v Ekspert
15. februar 2009 - 01:02 #4
Og lidt søgning bekræftiger: AreEqual er hvad du skal bruge !
Avatar billede jonas_h Nybegynder
15. februar 2009 - 10:22 #5
Når jeg bruger "AreEqual" får ejg følgende:
NUnit.Framework.AssertionException:  Expected string length 256 but was 5. Strings differ at index 5.
  Expected: "VPage                                                        ..."
  But was:  "VPage"
  ----------------^

Hvis jeg debugger og skriver t1.EditPage == t2.EditPage returneres der true. Så værdien er den samme i de to properties, men NUnit testen fejler stadig.
Avatar billede jonas_h Nybegynder
15. februar 2009 - 10:33 #6
Har fundet min fejl. Var kommet til at give feltet "nchar(256)" i databasen hvor det skulle have været "nvarchar(256)". Derfor skal man ikke programmere sent på aftenen :)
Avatar billede arne_v Ekspert
15. februar 2009 - 23:44 #7
Trailing spaces er naturligvis signifikante.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester