Kezdőoldal » Számítástechnika » Programozás » Hogyan tesztelek repo pattern...

Hogyan tesztelek repo pattern repository-kat mockal? C#

Figyelt kérdés

Van három entitásom (EF), ezeket egy általános és három entiti specifikus reposatory dolgozza fel (CRUD). Van egy logicom, amit mockolni szeretnék, ami a következőképpen kapcsolódik a repókhoz:


public class LogicABC : ILogic

{


IRepository<A> ARepo; //generic repo CRUD

IRepository<B> BRepo;

IRepository<C> CRepo;


public LogicABC(IARepository ARepo, IBRepository BRepo, ICRepository CRepo)

{

this.ARepo = ARepo; //entity specific repos CRUD

this.BRepo = BRepo;

this.CRepo = CRepo;

}


public LogicABC()

{

var Entity = new ABCEntities(); //context

this.ARepo = new ARepository(Entity);

this.BRepo = new BRepository(Entity);

this.CRepo = new CRepository(Entity);

}

//queries

public List<int> Query1()

{

var q1 = from x in CRepo.GetAll()

select x.Id;

return q1.ToList;

}


A célom, hogy a Query1-t mockoljam, setupoljam, aztán verify-oljam.


A probléma, hogy csak a következőképpen sikerült mockolnom a repót:


[Test]

public void TestThatLogicABCWorks()

{

Mock<IRepositoryA> mockInstance1 = new Mock<IRepositoryA>();

Mock<IRepositoryB> mockInstance2 = new Mock<IRepositoryB>();

Mock<IRepositoryC> mockInstance3 = new Mock<IRepositoryC>();

LogicABC logic = new LogicABC(mockInstance1.Object, mockInstance2.Object, mockInstance3.Object);

}


Így pedig nem tudom setupolni a logicot, csak a mockinstanceket, amelyekben viszont nincsen meg a query. Teljesen elakadtam ebben a problémában, minden segíségért nagyon hálás vagyok!



2019. nov. 11. 20:40
 1/6 anonim ***** válasza:

És ha az utolsó sorig bemockolsz mindent az osztályodból, akkor mit fogsz unit tesztelni?

A mock framework-öt?

Még mindig nem nagyon érted ennek az egésznek a lényegét.

2019. nov. 11. 20:55
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

Na ennyit ér az anonimitás:)


Igen, ez egy elég szörnyű beadandó feladat, tényleg annyi a feladat, hogy mockolj csak a mock kedvéért. Csinálok egy verify-t és megvagyok, de már órák óta küzdök vele.


Még stackoverflow sem hajlandó foglalkozni velem, ilyen még nem történt. Ennyire érthetelen vagy nehéz ez a kérdés?

2019. nov. 11. 20:59
 3/6 A kérdező kommentje:
Stackoverflow megoldotta, ha valakit esetleg érdekel, a példakód alapján szerintem megtalálja.
2019. nov. 11. 22:00
 4/6 anonim ***** válasza:

Én nem azt látom, hogy SO-n annyira megoldották volna, hiszen nem is igazán volt probléma.

Inkább csak elmagyarázták sokadjára, hogy amit csinálni akarsz, annak semmi köze a feladathoz, mert a feladattal amúgy semmi baj nem volt, semmi "csak mockolj a mock kedvéért" nem volt benne, csak nem érted mi az unit test meg a mocking.

Én mondjuk kétlem, hogy mostanra értenéd.

2019. nov. 12. 11:15
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
Én is. Mindenesetre a feladat készen van, úgyhogy most egy nagyon hosszú időre mindkét fórum megszabadul tőlem. Egy élmény volt, őszintén értékelem az altruizmus. SO-n az emberek kicsit türelmesebbek tho.
2019. nov. 12. 16:14
 6/6 A kérdező kommentje:
Pedig még az angolom is pocsék:)
2019. nov. 12. 16:15

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!