Skip to content

Latest commit

 

History

History
69 lines (48 loc) · 3.34 KB

File metadata and controls

69 lines (48 loc) · 3.34 KB

Egitura probak AAA ereduaren arabera



Azalpena

Probak egiterakoan daukagun erronka handiena memoriako espazio falta da, dagoeneko ekoizpen kodeak oso lanpetuta gauzka. Horregatik, proben kodeak sinplea eta ulergarria izan behar du. Probak irakurtzean, ez luke eman beharko kode inperatiboa irakurtzen ari zarela (begiztak, oinordetza), HTML moduan, esperientzia deklaratibo bat baizik. Hori lortzeko, erabili AAA eredua, irakurtzaileek probaren asmoa esfortzu gabe uler dezaten. Badaude hori bezalako beste eredu batzuk ere, adibidez: XUnit 'Prestatu, Aritu, Egiaztatu eta Eraitsi' ('Setup, Excercise, Verify, Teardown'). Hauek dira hiru Ak:

Lehenengo A, prestatu: hau da, prestatu kodea probak simulatu nahi duen egoeran jartzeko sistema. Horrek, besteak beste, eraikitzailearen unitate proba egitea eska lezake, datu basean erregistroak gehitzea, objektuen mock-ak/stub-ak eta beste edozein prestakuntza kode eranstea

Bigarren A, jokatu: exekutatu zure unitate proba. Normalean kode ilara bat izaten da

Hirugarren A, baieztatu: ziurtatu jasotako balioak espero ziren modukoak direla. Normalean kode ilara bat izaten da

Kode adibidea: AAA ereduaz egituratutako proba bat

describe.skip("Bezero klasifikatzailea", () => {
  test("Bezeroak 500$ baino gehiago gastatzen dituenean, premium gisa klasifikatua izan behar da", () => {
    //Prestatu
    const klasifikatzekoBezeroa = { gastatuak: 505, sortua: new Date(), id: 1 };
    const DBAntzeratua = sinon
      .stub(dataAccess, "berreskuratuBezeroa")
      .reply({ id: 1, klasifikazioa: "arrunta" });

    //Jokatu
    const jasotakoKlasifikazioa = bezeroKlasifikatzailea.klasifikatuBezeroa(
      klasifikatzekoBezeroa
    );

    //Baieztatu
    expect(jasotakoKlasifikazioa).toMatch("premium");
  });
});



Kode adibidea, anti eredua: bereizketarik ez, bloke bakarra, ulertzeko zailagoa

test("Premium gisa klasifikatua izan beharko litzateke", () => {
  const klasifikatzekoBezeroa = { gastatuak: 505, sortua: new Date(), id: 1 };
  const DBAntzeratua = sinon
    .stub(dataAccess, "berreskuratuBezeroa")
    .reply({ id: 1, klasifikazioa: "arrunta" });
  const jasotakoKlasifikazioa = bezeroKlasifikatzailea.klasifikatuBezeroa(
    klasifikatzekoBezeroa
  );
  expect(jasotakoKlasifikazioa).toMatch("premium");
});



"Erabili 6 zati proba bakoitzean"

"30 Node.jsren proba jarraibide egokiak" blogetik hartua, Yoni Goldbergen eskutik

Proba txostenaren adibidea



"Garrantzitsua da proba irakurtzen duen pertsonarentzat, probak zein jokaera egiaztatzen duen errez jakitea"

XUnit Patterns liburutik:

Garrantzitsua da proba irakurtzen duen pertsonarentzat, proba zein jokaera egiaztatzen ari den azkar jakiteko gai izatea. Oso nahasgarria izan daiteke jokaera ugari probaren barruan (SUT) deituak izatea, batzuk SUTaren proba aurreko egoera prestatzeko (instalazioa), beste batzuk SUTa jokatzeko eta beste batzuk SUTaren proba ondorengo egoera egiaztatzeko. Lau faseak modu argian identifikatzeak probaren asmoa ikustea askoz errazago egiten dute.