Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
ChristianFanell
@ChristianFanell
ersätta befintliga filer helt enkelt.
reverta, exakt
Christian Norrman
@iFaxity
Aha du kan göra git reset <tagg> (typ git reset v4.0.1), eller om du inte har committat något kan du göra git stash för att stoppa undan alla förändringarna
Om du dock har gjort commits och pushat dem kan du behöva lite mer drastisk git reset
ChristianFanell
@ChristianFanell
och sen efter det bara köra en git clone?
Christian Norrman
@iFaxity
Nej du har redan allt klonat redan?
Git clone är bara för att hämta ner ett repo, om du redan har det behövs det inte/
ChristianFanell
@ChristianFanell
jo men jag vill ju återställa filer som jag jobbar med lokalt. får jag ner dem med git reset?
Christian Norrman
@iFaxity
Yez
ChristianFanell
@ChristianFanell
k, najs. tack
Christian Norrman
@iFaxity
Du kan sedan behöva git push --force när du publicerar förändringarna sen, eftersom GitHub inte vet att du vill ta bort vissa commits.
ChristianFanell
@ChristianFanell
@iFaxity allright, ska ha det i åtanke.
Mikael Roos
@mosbth
Finns en fix i active record modulen, paul hittade en bugg. https://github.com/canax/database-active-record/releases/tag/v2.0.4
knasenn
@knasenn

Jag får följande fel när jag kör make test. Ngn som vet vad det kan bero på?

PHP Fatal error:  Uncaught Error: Call to a member function get() on null in C:\cygwin64\home\hemdatorn\dbwebb-kurser\ramverk1\me\redovisa\vendor\anax\view\src\View\ViewHelperFunctions.php:35

Jag tycker phpunit felmeddelandena är svåra att tolka

Christian Norrman
@iFaxity
@knasenn Funktionen url() i vyer behöver globalen $di satt. I dina testers setup som behöver DI så behöver du sätta $di globalt.
knasenn
@knasenn
@iFaxity Ah tack så mycke! :D Jag kikar
knasenn
@knasenn
@iFaxity Den klagar alltså på att det är fel i test-filen som ligger under anax/view? Jag förstr inte riktigt hur det fungerar. Behöver nog ta en paus o kika igen :`D
Christian Norrman
@iFaxity
Precis, men i dina tester används den globala $di variabeln, som förmodligen inte är definerad.
@knasenn
Denna funktionen klagar det på https://github.com/canax/view/blob/4e2d0e5edf2d19b38dc9787976786f84f9b3b419/src/View/ViewHelperFunctions.php#L32-L36 som i din view filer finns som funktionen url().
knasenn
@knasenn
@iFaxity Ok nu är jag tillbaka efter break. Fåse om det klarnar nu :) Tack
knasenn
@knasenn
@iFaxity Måste erkänna att jag inte förstår :P Jag försökte hitta felet "bakvägen" genom att radera testcasen i anaxmodulerna men får fortfarande fel.
Jag har inte varit jättebra på att skapa mock klasser för alla mina egna tester. Kan det ha ngt med det att göra?
Jag ska nog backa och se hur långt bak jag måste gå för att det ska fungera :P
knasenn
@knasenn
@iFaxity Tack för hjälpen idag. hade nog annars fortfarande letat felet att jag glömt radera extra mappen :P Nu ger jag mig för idag :)
ServerPojken
@EpiX0R
Hmmm, hur har folk löst API testerna? Finns det något smidigt sätt att använda API-nycklar i Travis/CircleCi?
Christian Norrman
@iFaxity
@EpiX0R Tror andra har nämnt att använda Env variabler, men det sparar ändå nycklarna i *.yml filerna.
Tomie
@jeneljenel
@EpiX0R alternativt att du testar mot en mock som inte behöver nycklar.
Christian Norrman
@iFaxity
Det är nog det bästa valet.
ServerPojken
@EpiX0R
@iFaxity krypterade eller flat? @jeneljenel Min weak-spot, hehe. Hur gör man smidiga mocks då?
Christian Norrman
@iFaxity
Med tanke på att speciellt DarkSkys API bara tillåter 1000 förfrågan per dag....när jag träffade det kunde man lika bra ge upp testingen för den dagen.
Nej inte krypterad.
ServerPojken
@EpiX0R
Hmm, finns i Travis docs att du kan skapa encrypted keys via deras CLI dock
sen lägga dem i travis.yml
Men ja, som sagt, jag borde gjort mocks för länge sen
är väl bara för lat för att sätta mig in i det
ska försöka integrera scrutinizer sen fixa med mocks
Christian Norrman
@iFaxity
I mitt fall skapade jag en klass för att hantera alla cURL förfrågningar, så skapade en till klass på det som kunde mocka förfrågor via att man specifierar responsen innan man frågar efter dem.
Tomie
@jeneljenel
Alla har gjort lite olika lösningar på mocks. Min är skitdålig. Men jag inbilliar mig att det vore bra att skapa sin di-tjänst med defaultvärden, varav en nyckel kan kollas om det är test eller inte. Och när du kör dina test så ändrar du den nyckeln till true och då hämtas inte ny data. Medan om den är false så hämtas ny data - alltså i produktion.
ServerPojken
@EpiX0R
Det låter intressant, ska kika på det snart!
Christian Norrman
@iFaxity
@jeneljenel Det verkar lite dåligt, tror det bryter SOLID med....
Tomie
@jeneljenel
@iFaxity haha. Okej. @EpiX0R ignore mitt meddelande :)
@EpiX0R hett tips är dock att du faktiskt tar tag i mockandet innan du ger dig på travis. För nu kommer du försöka lösa nyckelfrågan i alla externa testerna för att sen ge dig på en mock och när mocken funkar inser du att du inte behövde de där nycklarna :)
ServerPojken
@EpiX0R
Skippar nyckelfrågan helt, vet om att mock kan användas för att slippa onödiga api request + nyckelhantering. Har bara varit för lat för att fixa det tidigare hehe.
ServerPojken
@EpiX0R
Okej, nu är scrutinizer integrerat iallafall, kul när man får very good code rating fast build'en failar. Dags att mocka nu då!
@iFaxity Dina Mocks lät rätt smidiga, har du några exempel?
Christian Norrman
@iFaxity
Finns på mitt github repo, ska länka
MartinLedel
@MartinLedel
        $request = $this->di->get("request");
        $request->setServer("REQUEST_METHOD", "POST");
        // Test the controller action
        $request->setPost("anax/htmlform-id", "anax/htmlform");
        $request->setPost("Title", "XXX");
        $request->setPost("Author", "XXX");
        $request->setPost("Image", "XXX.jpg");
        $request->setPost("submit", "Create book");
        $res = $this->controllerTest->createAction();
@mosbth Om ngn undrar hur man ska testa formuläret i kmom06
Mikael Roos
@mosbth
@MartinLedel kan du uppdatera så man ser även start/slut på testmetoden?
Mikael Roos
@mosbth

Nu har @MartinLedel både tester mot HTMLForm klasserna och en mockad databas via sqlite::memory:, Det går tydligen att träna en hel del enhetstester i kmom06 oxå. Jag får ta och skriva in det i kmomets instruktion till nästa år, iallafall som rimlig extrauppgift. Paul M banade vägen för testerna med full kodtäckning mot htmlform och dess callbacks.

Ett tips i sammanhanget kan vara att sätta tjänsten "configuration" att läsa konfigfilerna först i test/configoch därefter i config/. Det ger oss möjligheten att "mocka" tjänsterna i $di med konfigfiler som är specifika för testerna (text "dbqp" som sqlite::memory:).
Så här kan man göra i sin setUp-metod.

$di->get("configuration")->setBaseDirectories([
    ANAX-INSTALL_PATH . "/test/config"),
    ANAX-INSTALL_PATH . "/config"),
]);