Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

February 20 2017

max-power
catbass
Reposted fromlooque looque vianaich naich
4518 1813 500
Reposted fromzuuu zuuu viahairinmy hairinmy
max-power
2054 7590
Reposted fromelchupacabra elchupacabra viavolldost volldost
max-power
Reposted fromtfu tfu viavolldost volldost
max-power
Reposted fromHeadbanger Headbanger viavolldost volldost
max-power
ich bin so froh dass ihr alle wieder da seid
Reposted fromSirenensang Sirenensang vianaich naich
max-power
Reposted fromzelbekon zelbekon viaPsaiko Psaiko
max-power
Reposted fromtotal1ty total1ty vialubi lubi
max-power
4312 13e3 500
Reposted fromszatatan szatatan viareloveution reloveution
max-power
2461 8aa5
Reposted fromtichga tichga viaKrebs Krebs
max-power
4391 be77 500
Reposted fromadzix69 adzix69 viasofias sofias
max-power
9749 a86b 500
[reupload 02.01.2016]

Bisa ist zwischenzeitlich viel gewachsen!
Reposted fromRekrut-K Rekrut-K
max-power
Reposted fromzelbekon zelbekon viamichalkoziol michalkoziol

February 18 2017

4885 990a 500

"I have seen the future"

Reposted fromscaw scaw viaslania705 slania705
max-power
Reposted fromHeadbanger Headbanger viavolldost volldost

February 17 2017

max-power
Ohje. Viele grundlegende Fragen.

Ein Test sollte im wesentlichen Input/Output Paare überprüfen. Du nimmst deine Funktion die du testen willst und erstellst möglichst viele Input und Output Paare. Am besten sollten diese alle Branches (if, else, etc.) der Funktion abdecken (Stichwort "code coverage"), so dass jede Zeile der Funktion von dem Test betroffen ist. Zudem sehr simple Fälle oder besondere Randgruppen-Fälle und ggf. Fälle von fehlerhaftem Input. Der Sinn des ganzen ist, dass spätere Änderungen am Code oder Package-updates den Output dieser Input/Output Paare nicht verändern sollten. Bevor man größere Änderungen commited oder deployed sollte man also den Test laufen lassen um sicherzustellen dass noch alle Funktionen den erwarteten Output erzeugen (Es gibt auch Tools wie z.B. Jenkins die Commits mit failenden Tests unterbinden.). Man asserted dass der Output noch ist was er sein soll. Beispielsweise: assert(2*3===6);. Bei komplexerem Output lohnt es sich den erwarteten Output beispielsweise als json im test ordner zu speichern und für den Test zu laden, wie es auch das später erwähnte testcompare Package erleichtert.

Bei node verwende ich mocha fürs testing. Dazu installierst du mocha mit

npm install mocha --save-dev

Das speichert mocha in der package.json als dev depedency.

Dann deklarierst du mocha als Test-Tool in package.json:

  "scripts": {
    "test": "mocha"
  },


dann erzeugst du deine Test Scripts in einem Unterverzeichnis namens "test". Ich nenne sie immer <file>.test.js, also wenn ich bier.js testen will erstelle ich eine bier.test.js im test ordner. So behält man die gut die Übersicht.

um deine Tests auszuführen startest du

npm test

oder

mocha

Um das Schreiben von Tests zu erleichtern hab ich mal folgendes Package geschrieben, dass das Vergleichen größerer Datenstrukturen erleichtert:

https://www.npmjs.com/package/testcompare

das installierst du mit

npm install testcompare --save-dev

das Package selbst enthält auch Tests (ich empfehle mal das Testverzeichnis dort anzuschauen) und im Readme wird die Funktionsweise weiter beschrieben.

Zur vorher erwähnten Code Coverage: Mit einem tool namens istanbul kann dir mocha einen Code Coverage Report erstellen der dir sagt wie gut deine Tests den Code überprüfen.

https://github.com/gotwarlost/istanbul#readme

als root:

npm install -g istanbul

dann:

istanbul cover _mocha -- -R spec

dann im Browser die Datei coverage/lcov-report/index.html öffnen um den code coverage report zu lesen. Dort wären dann Zeilen im Code rot markiert die nie von deinen mocha-Tests erreicht werden.

Zur Linux Distributionsfrage ists schwer was zu sagen. Das hat ja schon religiöse Züge. Ich verwende Arch Linux, es ist rolling Release und läuft einfach. Schon lange keine Probleme mehr gehabt. Updates gehen nicht automatisch, aber mit einem einfachen Konsolenkommando. Ist auch besser so, weil ich keine Versionswechsel will wenn mir der Zeitpunkt nicht passt. Arch hat doch meist sehr aktuelle Versionen die schonmal kleine Wehwehchen haben... Auf einem Server würde ich aber kein Arch laufen lassen. Aber ich will da jetzt nicht zu viel ins Detail gehen. Da bekommt man eh nur Gegenwind...

Ach und ob node nun das richtige für dich ist, kann ich dir nicht sagen, ich weiß ja nicht was du vorhast... Ich finde man kann gut damit arbeiten und das npm system funktioniert gut und erleichtert das Deployment z.B. auf AWS skalierbarer Infrastruktur. Am Ende aber alles Geschmackssache...

Und ein großes LOL an "Spezialsprachen aus den 80ern". Ich war mir kurz unsicher ob du hier trollen willst... Weißt du was alles an gutem Zeug aus dem 80ern oder noch älter ist??? Oft sind es genau die, die deine Anforderung des "einfach laufen"s am besten erfüllen ;)

Ebenso, warum nennst du C eine "Kartenhaus-Sprache"? O.o

Ich hoffe ich konnte helfen ;-)

@sofias: hab noch was dazugeschrieben...

February 16 2017

max-power
3140 9638 500
Reposted fromfungi fungi viabardzosmaczny bardzosmaczny
max-power
max-power
0143 cfa8
Reposted fromnazarena nazarena viaqbshtall qbshtall
max-power
2872 242b
Reposted fromsohryu sohryu viadank dank
Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl