Mocking

Hvorfor bruge Moq

Hvis du tidligere har arbejdet med unit tests, fandt du sikkert hurtigt ud af, at det hurtigt bliver svært at skrive unit tests til alt andet end den mest simple kode. Fx kan det være svært at isolere den specifikke del af koden, som du ønsker at teste, når metoden du skal teste også indeholder kald til andre klasser og tilgår eksterne ressourcer som fx database servere og web services. Ikke alene besværliggør dette udviklingen af dine unit tests; det gør dig også bekymret for at skabe problemer i de eksterne systemer, når du kører dine tests.
  Moq kan hjælpe dig i alle disse scenarier. Mockede objekter kan hjælpe dig med at isolere den kode, som du ønsker at teste, og de kan hjælpe dig med at sikre, at de eksterne ressourcer overhovedet ikke kommer i spil. Derudover opfordrer brugen af mockede objekter dig til at bruge gode kode principper, der vil gøre din kode lettere at vedligeholde.

Forestil dig dette scenarie; du skal teste en metode, der indeholder kald til andre klasser, der måske yderligere kalder videre til andre klasser.


Dette gør det svært at overholde egenskaberne af en god unit test. Men det er også her, at mockede objekter kommer ind og gør det nemmere at teste den ønskede funktionalitet isoleret fra kald til andre klasser. Mockede objekter bruges til at fjerne disse afhængigheder og erstatte dem med falske kopier af afhængighederne.


Dette giver dig fuldstændig kontrol over, hvad de falske afhængigheder gør, og de falske afhængigheder kan spore interaktionen mellem den kode, som du tester og afhængighederne, så du med din test kan verificere, at alt sker efter hensigten.

Kom i gang med Moq her

Moq er et mocking framework til .NET platformen, og du kommer hurtigt i gang med brugen af mockede objekter i dine unit tests med dette link:

https://github.com/moq/moq4/wiki/Quickstart

Fortsættes...

Del 11: Mocking

Ingen kommentarer:

Send en kommentar