Bestand wählen
Merken

Test-Driven Development by Example

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the and the be itself you here they were not tested in development by example when I put this talk together I was sort of thinking I could never talk it wasn't a big announcement like each you body or something that blow away on the the now I thought maybe maybe there's other people the conference you are working on the next rendering engine or something and maybe there's 1 to build web apps like I do so this is really bad before we get started now I wanna show the
activity of building the next 30 minutes and to really simple Conlon word has some items on the left there on sign and I can click this little blue I don't know will assign those to the assigned item on the right and then I can drill in by clicking the name the at any of these all kind of show the details section and those details data bounds and the intent really is to just
show how to get feedback With tested on development when I 1st started learning tested on it was more about finding something that would prescribe success and ultimately TDD was not about that like have learned incorrectly added who learned correctly and instill sometimes learning correctly and do it held today just pass along some information to pro may be old it's not that brand but you pick up 1 small thing and a lot of times when I was younger I was felt like when I came to these it was the really small thing that I saw during a coding demo those more interesting sometimes than the whole presentation or where the presentation centered so to get started really using embassy Apple cost us to make this a lot easier and start out just by generating an acceptance tests to get started In a call assignments and usually I
can start doing this line of business stuff O'Connor start with a high-level test I just feel like I know what the client or the user the end users coming from and in this particular example is a on sign and find items of the simplest starting point really is do we have items that are on the sign of a group together and we have assigned items that are grouped together so start with the undersigned column basically find a table of unassigned and it's you are I had this sold the Oracle at cards and sometimes a common words we call those cards and also we certain right now that there is a certain number of these in the down to having get started so say the length of this is 3 and 1 thing at low protocols Rotifera during a life filling you might see it in the upper right corner is the the best way of success here for like coding is turned off Wi-Fi don't attempt and cancel anything goes so literally yourself guaranteed something's gonna break so I'm not going to install anything of here today I I am
however going to be flipping held to monitors catch the somebody flipping between the life code and the test run and if you knew member you haven't seen this you can actually do a test run by doing test test test server that will continually watch and then lined up at the test so a star with our failing test and the very bottom latency we expected 3 of these unassigned items and 1 of my gripes with test is that all what is what's the other side was technically undefined there is no entry in the down for this so the 1st thing we're going to
do is just jump into the router actually
find a out for these 2 views that I call them and was going to work for simplicity in this demo at the root of the application and that gives us access now work away from the application and were simply so is great 1 called to be used and while have a really simple table or something which is really a simple table and I call this thing I get is a class of unassigned and then I for some reason citing cards is a good name for the TIR they will
flip back when the things I want to point out here is earlier in my journey for testing development was thought red green for factor I had a go from red to green now would make some changes but also have found for the years that I use the red over and over again to get feedback is it doesn't go directly from red to green so in this particular instance and showing that I'm on the right track is a set of 3 is undefined and now being 3 is not 1 right so we know the answer this risk and you
need to appearance age to do in some kind computed years on the science and we knew that we got obviously add a controller at work FIL added use jails here and in it was basically do a very simple controller yeah it will criticize assigned property and right now is needed facet of the simplest of my code passes is return array with at least 3 items in it and we use another test a kind of dry the requirements of where these views
actually look like so the passing build
no + please that was really not worth it so long now have something better as well as the now as Ringo gives us the 1st property which if you remember the final result we base that WikiProject
name so as go year project name from
there this and energy do that is by going to the 0 item essentially in horrors list here and now find it TD was something like to do project in and say project that text should be something like 1st this and this is arbitrary data
courses making this up and we're getting of course a failing test which is great tells where when you
start never looked at the head of our side the 1st thing I liked it is because of been burned by incorrect selectors so many times is I like to come in and just kind of put in incorrect values and putting an X there anyway just to make sure
that in right track oftentimes of found myself doing multiple steps only to find out in how the selected also results say the infimum hopefully so we know we give we have an
ax ideally we actually like to do something like to do that projects and this is the failing test that
we saw 1 of that last time around where before is returning a list of integers is nowhere
and satisfy the is great to really simple sample data MLE can iterate on this controller so great a project the 1st and strong stands 1st 2nd 3rd data the In the 2nd 3rd and now course
we're passing test this membrane data this of course
overlooking the controller is of course not the greatest controller yet incrementally get there the drives the other side of this requirement but before we go right a test so I come back and look at the end of ours because the 1st thing I noticed at the top of this is we have a table in course or not trending I happened is right now so ah designer decides for this change this to do this or something like that they come in here and from the behavioral perspective what this refactor really shouldn't be anything that changes from the tax rates of I change T R tables and change this to to expand the behavior of the web application is the same yeah
unfortunately the test of reflect that I should I mean we factor and I call this out
because the test I wrote on purpose work on like the early test error when I was doing and protesting a Slonim and or very structural layout dependent but in reality assess about behavior they don't care if I the of changed all back people in this so I was just coming here and remove anything specific to the layout Sumner move anything like he and of course on the table now in passing
tests of wooing obtaining back the tables will still pass it doesn't actually matter and as a front end near decided the behavior of the web application I don't actually care excellent as so now we
have sort of the happy path on the left side for the unassigned but we obviously need
to finish the story is the common borders not necessarily only unassigned and also noticed this terrible testing and pair programming 600 people on the we got welcome that is fine so say assigned items are grouped together and this 1 particular was this the place sign science and you ruling a call out here is that you definitely want to have a different number when you're page's just making up arbitrary things like I am in this case only show that there is only 1 assigned item when we get started and then have a different number from the other side just make
sure make something up and I do so get failure that 1 is not defined so we
know we know it is that happen on the controller assigned using linear least 1 item in here so created assigned computed and sigh here is gonna really return eigen fictitious data until we get to a point we can refactor further so say last is some projects with different text against say last and then on the 1st on the can of our we need to do to basic copy this and eventually can imagine this gets extracted out as a component of some kind Paris so it's going to make 1 change here which is to not completely it the implementation right because
actually have a failing test there and now we
have that piece of passing I'm not actually serving this line which actually gets a failing test right now so we do is switch back to the test code here and bring back and the final thing I tested the unassigned signed story and that is if we go fetch a product from a sign they should have the text of last which should Phyllis
renowned we have left is not X which make
sense so if we go back to the universe template here this could to start in to do
project now in passing test now at the
point where on the controller sigh can actually the very fact against will the close a real and wrap the bigger number probably very disappointed in me right now we torn this is now we talked about but honestly were going to get to the point where this is just the model property so it's incrementally new choose by actually adding this and then extracting out and then we have to come up with some kind of property that I assume that the back end either I as a back-end developer our someone else on the back and has decided will be the status code indicated so in this case we say we have something called status underscore code and this status code will be the thing that determines if it's been assigned unassigned on the back and so now we can do in here's lectures return the stock market the circuits model that filter the and Cyrus really and return at the model's statuses work code is a 1 because in this case is arbitrarily decided we do 1 and then in his bottom cases due to so the yeah what without
I started that that don't show me I will get there we get there the the I guess somebody's actually seen this talk is the which against enjoy it sort of that I at the so underwritten model I
it's obviously important in a break the world here so the reason every that model property
out is willing to go down the routs and added to use that js just again getting as incrementally grows closer to the final version of this so the you amber for member man export out around here this and pieces in verbatim on our strategy the simplest thing goes back to a passing build In a way
passing build Stella and the next 1 of
you is just write a failing test that we can actually get the status from this if you remember in the final
actually have timing Graham in green here the actual status sort in plain English and the challenge for us school as
you write this features right now it's just you know more integer value from the database so need action try that out will say status is shown in the plane English that's how I got my writing test name responsibility revoked so the way on its last year hence William III through the start of the same test here I and the only difference is 4 . 2 ask for the status itself so the 1st would is right the failing test here during a region to but the assigned the 0 item really is 1 right now and ask for his status and of course this is going to give us a failing test here
the so there's nothing in the 1st step really is to
define CSS selector in universe so it's come into the science side here and I know this is gonna fail but I want a little bit more information put X on the and just so you
can see that still undefined and
now here's the challenge with purely acceptance testing the acceptance testing is great to show the happy path flow from your notes to the controller to your template maybe some model and what is not necessarily the best that is some of his quicker feedback for conditionals and especially conditionals have computed properties so when they do now is actually break from purely acceptance testing as and on purpose I'm gonna leave us a
failing test here but I'm gonna break uh so that
test run and actually go add a unit test this is going to drive the sign transformation from status code to status so drop down the test directory nearest UA to do model test that S and I'll say a little boilerplate here by half cheating was a status code the 1 is assigned and to a subject here is to do that creates adding instead of food 1 which to assert that people so big that it and this course is unsigned the now from a run this test in isolation I have a model name at the top it is called to do where the cool thing you know but I'm still when you're in
this predicament I'm in where I wanna run just 1 test and no and I know I have another failing test scores grief and we're on this 1 and the guy can you call filter command a filter down to just this particular model or test and I know I haven't area which says to do is not defined just I like the 1st spelling
test important to do from what will be in just a minute the con bond models to do in the actually you adults to the models directory here stated you digest do and just X for really simple model here the in your property were actually have courses status the and and right now is gonna return
actually actually see a good failure announcing we expected unassigned vector get x now really make this 1st test passing
this lamin signed and only have any
additional drive here so the next
failing test will actually try this out so this kind of pattern tested says of course the other side is sensitive to will be assigned and this is kind of test it gives us a
little bit further to solving acceptance family acceptance tests to get unassigned
is not assigned imagine that we coded so say status code is this I get status code and then right now if the status code is a one we will return unassigned otherwise turn aside that should get us passing
building and those the right now the other reason
that so make all that computed earlier but another reason I like the unit test especially conditional as being driven from a computer property is so many people seem to miss the cache breaking component of computer property so what better way than to write a failing test for so I'm actually do is right that test if we said subject that status code slam that into a 2 should a
failing test now and only induce says
and our back to essentially a really clean model is tested for the other examples I
wanna point out here From this unit test is sometimes I write tests a very emotionally attached to another that experience and all citizens and this bottom test Amber emotionally attached to it because and like this infernal you guys is scattered and so but I noticed on a couple of a couple lines double lines up I'm actually testing of the right here we have to be aware cognizant of every test is just as expensive or just as big of a burden as the production code that maintains a helps us to maintain so in this case I think it's acceptable for me to break that out there not any more than really 2 conditions right here in the summer break that up still feel good about myself as an annex it we need to do is I
wanna go back to non filtered the non-filtered test so I get back to my family test method for Y and we use a failing test forget about it and we can remember where at now we had the acceptance test that supposedly had a status property but it does in the hope that for some reason so if we
go look at the routing that's actually pushing down these object to notice they're not the newts do model so there's no way we actually have access to the status code so I'll bring in the new model year and actually do a to do that creates the and now that I have
all those created you'll see I'm getting sign x should actually people that the end of our
science the now wants a little bit of our side the we should have green test run to we're
so that's kind of guy illustrates in that example
really that unit and functional or acceptance tests they actually live together in harmony it's not it's not 1 of the other so hopefully that example can show that off right so struck down and write a test here and this was say taking the assign button will move item From on assigned to science yeah and this test really drive the computer that's lacking that obeys expose above that we have currently in the controller price which is at the end of course the and and 1 thing I want to show here that the you might have to disagree with this and sometimes see the test as it tells the story and sometimes I tell I want to help tell the story better I will illustrate it a little more verbosely than I would in production code so in this particular test I'm actually going to have like a free assert that when I start this test I have 1 assigned 3 unassigned items then if I click the unassigned and equal 0 basically the 0 died in that list and then we'll have a new thing that will call the assign button here that if I were to lose if I were to assign click this button actually assigned 1 the end result and the reason I say this is how I telling a story they can see the before and after the story here so I should go from 1 and 3 to 2 into this is actually gonna be cool because there's a couple
different ways I use the test to give me feedback the first one is there is no assignment found actually blows up on the test runner so need to flip
back into the of our side just add 1 here you a class of Simon and I was reminded test
knowing that were not complete border hopefully get a different error message meaning were heading down the right direction we are so getting expected to and
3 had not been remapped so the 1st thing is going to fire this action of a sign off here right pass along the to do that we have that were currently moving over and in the controller we should actually add actions block now and said science is a function of stimulus it's due and cost the simplest thing to do in years religious set that status code 2 2 for the moment was interesting is the tester so
failing and if I got this far and I
wasn't a programmer who wrote the original computers I might be little used by somebody called out earlier really what's missing here is the ability of break the cash when status is updated here so I just tell the computer
properties when a break and now when you click that blue button efficient use them from left to right which is cool right so 1 thing I just
remembered is we have this hard coded model data and most times this membrane x progression here is actually use some kind AJAX call get this data from the back and so I was just work towards that migration and the hour mark the H or the 1st thing I'll do something about using Amber data here for whatever reasons and is going to get an array of to be used a return it chase on API to do use an organ really doing the and is return the seasons promise results of this deferred and will reduce the over so for each year but this data an organ use use that push object 2 . 3 passing and data for now is the simulating with pride the honor relapse now cost I take that out we expect
the world would end on the test site and those
in now we need to do is a stub that there's a a whole bunch of libraries out the the least of this
and there's no Jackson and pretender I matches the new 1 called projects I will be religious about how to say it's easy to use so safe jak-stat new and all I have to do is get the API to use and point any response text what's in in not creates that use that would probably these are actually need to be similar weights and on your back and here which is just Roger sound now
test passing just also so I am more what
a real lap around is actually reaching out to some kind of back and fetching this data and there's really only 1 test left to right and that is clicking the toggle link will show details for a given item and this 1 resents traveling its costs the and this 1 actually spent interesting is expect just to click this button so or go to the unassigned category again cards equals 0 and we go to this toggles link thing that doesn't exist yet of this could be a link a link to helper and all women do in the very 1st assertion is just a surgical that the current URL has changed and were expected to be something like 2 1 because it just happens to be the 1st in the list In the 1st failure we get just
like earlier when we try to be the button is the toggle link is not found also backed
can of our side and say OK so had a link to the notes community traffic and Friday something like to use that to used the URL and pass along her friends do and make sure we get our CSS selector I will pass in the toggle link here and that is link to now the next error that
actually confirms once we know it's like this is that it blows up and says it on there's no right to use . to do
so which is great because the router hasn't been and magic we set up on seems on so will actually add Nesterov here the skull to do figure the path of slashed to slash to underscore ID and now she gave
different error and notice the area here actually something I was expecting the 1st summer of this talk is I was vector just work but of course there's no ID properties so
assuming now on the back and were actually get an ID the they actually want to have and incrementing idea so the idea is 1 2 3 4 now and the test
patterns Stella current that's not if we look
at the production out here when I drill down it's great that 1st this changed but you notice this entire column on the right is gonna Details column originally when you load the page if I go back here if I go back will the pages actually hidden so when a kind of a cool user interface that would just let me stay on the same URL but then show this details was so the 1st thing 1 and actually do say that there
isn't that there is a detail section but it's hidden by default so actually in a kind of prerequisite a certain type talked about that earlier and to say details is defined something called details section and was going to do search that OK that details is it is expected that we have a page In course blow up the funny thing years
are actually blowing up I'm not because I think it's just not an element really at all so reading a treaty argument so the gradient here and a a class of details section and also make it hidden by default just can get us
rolling around that time mixing wanna do is
the whole reason I set that up is in the end here actually wanna say that once side toggle the oral that it's not it that's the whole point right so I can toggle this details link
basically you'll see well we haven't satisfy that because in the end of our side the 1st thing we
need to do is actually make this dynamics Olduvai divine data into a class where we always said details and then whether or not he is there's actually often is active wrapped the so say is this the active rout and before beforehand this is active routing go back to the controller here just added is active wrote and was still member computed people and really or after years current rout name if that is equal to introduce that index we know when the error of the fortunately car name doesn't come for free actually the hijacked an application here new controllers start application current was aware that it has to pass also in the
very last very last piece that's going to get is gone here is that I also expect that there's a balance inputs orders call this project input basically find within the details section input with the class of projects and you answer to that equal that projects input that power is equal to 1st which just so happens to be the text is it is
there are models 1st project so
now we need to do to make this happen is collected in a bars outlets once I had the outlet need added parent template to be used at all and we had to be that tedious was I had to do each yes like can be and input class projects what's going and the value is simply the model that projects but was not drop the might get the so
that's that's the functionality right that's the but I about has it worked is really work so go out to our embassy a liar
here the and here is the apple I have a soul X link that when I click it changes the oral it updates my bound property had these buttons they're not very pretty right now but they work and the I have a
skeptical what skeptical developer 19 insist on the sensor but since we have that designers come and it's over so it's true that guy wrong right now and so many new amber server here In this is basically
with only HTML changes so and actually work with a really great fun and I I is not the present the guy that was fictitious but you agree get and that was to say he came in and designed this form which so can a scumbag was like a it's done would you make it look great at this week so you can come in and you can come in and still click click around it so click the details the details are still bound were not those
tests think this test or
and
you you you you you you you would come in and we we
Statistischer Test
Rendering
Rhombus <Mathematik>
Gebäude <Mathematik>
Web-Applikation
Softwareentwickler
Quick-Sort
Demo <Programm>
Systemaufruf
Kombinatorische Gruppentheorie
Gebundener Zustand
Teilmenge
Statistischer Test
Rechter Winkel
Vorzeichen <Mathematik>
Codierung
Garbentheorie
Wort <Informatik>
Information
Softwareentwickler
Offene Menge
Server
Punkt
Existenzaussage
Gruppenkeim
Parser
Zahlenbereich
Code
Physikalisches System
Client
Statistischer Test
Vorzeichen <Mathematik>
Ereignishorizont
Gerade
URL
Signifikanztest
Videospiel
Dicke
Protokoll <Datenverarbeitungssystem>
Browser
Chipkarte
Funktion <Mathematik>
Rechter Winkel
Codierung
Server
Wort <Informatik>
Router
Demo <Programm>
Sichtenkonzept
Elektronische Publikation
Indexberechnung
Parser
Kartesische Koordinaten
Kanban <Informatik>
Template
Chipkarte
Komponente <Software>
Statistischer Test
Whiteboard
Gamecontroller
Mapping <Computergraphik>
Lesen <Datenverarbeitung>
Router
Wurzel <Mathematik>
Modelltheorie
Tabelle <Informatik>
Rückkopplung
Mathematisierung
Parser
Code
Template
Homepage
Komponente <Software>
Weg <Topologie>
Statistischer Test
Statistischer Test
Gamecontroller
Softwareentwickler
URL
Signifikanztest
Sichtenkonzept
Kategorie <Mathematik>
Default
Browser
Teilbarkeit
Funktion <Mathematik>
Menge
Whiteboard
Rechter Winkel
Gamecontroller
Modelltheorie
Instantiierung
Resultante
Router
Kategorie <Mathematik>
Default
Browser
Parser
Mailing-Liste
Lineares Funktional
Gleichheitszeichen
Energiedichte
Statistischer Test
Puffer <Netzplantechnik>
Whiteboard
Funktion <Mathematik>
Gamecontroller
Skript <Programm>
Projektive Ebene
URL
Resultante
Signifikanztest
Offene Menge
Statistischer Test
Weg <Topologie>
Rechter Winkel
Browser
Parser
Objektklasse
URL
Schreib-Lese-Kopf
Browser
Parser
Mailing-Liste
Statistischer Test
Funktion <Mathematik>
Ganze Zahl
Gamecontroller
Stichprobenumfang
Gamecontroller
Kategorie <Mathematik>
Skript <Programm>
Projektive Ebene
URL
Signifikanztest
Kontrollstruktur
Folientastatur
Web-Applikation
Mathematisierung
Browser
Parser
Bitrate
Statistischer Test
Perspektive
Gamecontroller
Refactoring
Tabelle <Informatik>
URL
Signifikanztest
Statistischer Test
Funktion <Mathematik>
Browser
Parser
Datenstruktur
Gleichheitszeichen
Teilbarkeit
URL
Tabelle <Informatik>
Fehlermeldung
Offene Menge
Web-Applikation
Browser
Parser
Zahlenbereich
Systemaufruf
Gradient
Gleichheitszeichen
Signifikanztest
Quick-Sort
Homepage
Statistischer Test
Funktion <Mathematik>
Statistischer Test
Vorzeichen <Mathematik>
Debugging
Optimierung
URL
Tabelle <Informatik>
Statistischer Test
Subtraktion
Punkt
Funktion <Mathematik>
Rechter Winkel
Eigenwert
Gamecontroller
Mathematisierung
Browser
Gamecontroller
Implementierung
Projektive Ebene
Zusammenhängender Graph
URL
Signifikanztest
Chipkarte
Browser
Parser
Biprodukt
Lie-Gruppe
Code
Statistischer Test
Funktion <Mathematik>
Vorzeichen <Mathematik>
Gamecontroller
Kategorie <Mathematik>
Skript <Programm>
Gerade
URL
Chipkarte
Punkt
Zahlenbereich
Abgeschlossene Menge
Parser
Template
Code
Informationsmodellierung
Statistischer Test
Code
Front-End <Software>
Gamecontroller
Skript <Programm>
Softwareentwickler
Grundraum
URL
Signifikanztest
Kategorie <Mathematik>
Template
Default
Datenmodell
Browser
Digitalfilter
Puffer <Netzplantechnik>
Whiteboard
Funktion <Mathematik>
Digitaltechnik
Gamecontroller
Kategorie <Mathematik>
Projektive Ebene
Offene Menge
Kategorie <Mathematik>
Datenmodell
Browser
Parser
Digitalfilter
Iteriertes Funktionensystem
Informationsmodellierung
Statistischer Test
Funktion <Mathematik>
Gamecontroller
ATM
Kategorie <Mathematik>
Kontrollstruktur
Skript <Programm>
URL
Browser
Versionsverwaltung
Datenmodell
Parser
Routing
Template
Gesetz <Physik>
Statistischer Test
Verzeichnisdienst
Funktion <Mathematik>
Strategisches Spiel
Kategorie <Mathematik>
Modelltheorie
Metropolitan area network
URL
Signifikanztest
Ebene
Chipkarte
Subtraktion
Datenhaltung
Default
Gruppenoperation
Datenmodell
Parser
Gradient
PACS
Gleichheitszeichen
Gerade
Signifikanztest
Quick-Sort
Statistischer Test
Puffer <Netzplantechnik>
Whiteboard
Funktion <Mathematik>
Ganze Zahl
Code
Endogene Variable
Offene Menge
Rückkopplung
Bit
Kategorie <Mathematik>
Browser
Parser
Spieltheorie
Datenfluss
Teilmenge
Statistischer Test
Informationsmodellierung
Statistischer Test
Konditionszahl
Gamecontroller
Kontrollstruktur
Information
Grundraum
URL
Signifikanztest
Router
Komponententest
Datenmodell
Browser
Indexberechnung
Transformation <Mathematik>
Sichtenkonzept
Template
Code
Informationsmodellierung
Statistischer Test
Vorzeichen <Mathematik>
Textbaustein
Verzeichnisdienst
URL
Signifikanztest
Server
Kategorie <Mathematik>
Datenmodell
Browser
Systemaufruf
Sichtenkonzept
Gleichheitszeichen
Template
Komponente <Software>
Informationsmodellierung
Statistischer Test
Funktion <Mathematik>
Whiteboard
Flächeninhalt
Gamecontroller
Statistische Analyse
Modelltheorie
Verzeichnisdienst
URL
Signifikanztest
Statistischer Test
Funktion <Mathematik>
Mustersprache
Datenmodell
Browser
Parser
Vektorraum
Message-Passing
URL
Bit
Default
Gebäude <Mathematik>
Familie <Mathematik>
Browser
Parser
Code
Teilmenge
Statistischer Test
Funktion <Mathematik>
Statistischer Test
Rechter Winkel
Code
URL
Objekt <Kategorie>
Signifikanztest
Komponententest
Kategorie <Mathematik>
Browser
Datenmodell
Gleichheitszeichen
Iteriertes Funktionensystem
Code
Lie-Gruppe
Algorithmische Zahlentheorie
Statistischer Test
Funktion <Mathematik>
Caching
SLAM-Verfahren
Kategorie <Mathematik>
Zusammenhängender Graph
URL
Signifikanztest
Punkt
Komponententest
Universal product code
Browser
Parser
Visuelles System
Teilmenge
Statistischer Test
Informationsmodellierung
Funktion <Mathematik>
Informationsverarbeitung
Rechter Winkel
Statistischer Test
Konditionszahl
Minimum
Kategorie <Mathematik>
Kontrollstruktur
Delisches Problem
Gerade
URL
Signifikanztest
Offene Menge
Server
Kategorie <Mathematik>
Datenmodell
Familie <Mathematik>
Browser
Parser
Code
Teilmenge
Objekt <Kategorie>
Statistischer Test
Informationsmodellierung
Funktion <Mathematik>
Code
ATM
Skript <Programm>
URL
Signifikanztest
Resultante
Chipkarte
Lineares Funktional
Bit
Universal product code
Browser
Parser
Mailing-Liste
Gradient
Signifikanztest
Template
Teilmenge
Algorithmische Zahlentheorie
Statistischer Test
Puffer <Netzplantechnik>
Einheit <Mathematik>
Funktion <Mathematik>
Whiteboard
Vorzeichen <Mathematik>
Statistischer Test
Gamecontroller
URL
Arithmetisches Mittel
Signifikanztest
Offene Menge
Statistischer Test
Subtraktion
Puffer <Netzplantechnik>
Whiteboard
Klasse <Mathematik>
Browser
Parser
URL
Richtung
Fehlermeldung
Lineares Funktional
Momentenproblem
Gruppenoperation
Browser
Datenmodell
Parser
Digitalfilter
Code
Gruppenoperation
Statistischer Test
Menge
Funktion <Mathematik>
Statistischer Test
Vorzeichen <Mathematik>
Code
Gamecontroller
ATM
Gamecontroller
Kategorie <Mathematik>
Message-Passing
URL
Resultante
Programmiergerät
Selbst organisierendes System
Parser
Algorithmische Zahlentheorie
Informationsmodellierung
Statistischer Test
Arithmetische Folge
Migration <Informatik>
Gamecontroller
Kontrollstruktur
URL
Drucksondierung
Kategorie <Mathematik>
Folientastatur
Datenmodell
Browser
Systemaufruf
Digitalfilter
Endogene Variable
Gruppenoperation
Objekt <Kategorie>
Funktion <Mathematik>
Kategorie <Mathematik>
Message-Passing
Web Site
Hauptplatine
Parser
Maßerweiterung
Gradient
Kanban <Informatik>
TUNIS <Programm>
Statistischer Test
Gamecontroller
Code
Endogene Variable
Programmbibliothek
Skript <Programm>
URL
Signifikanztest
Browser
PACS
Lineares Funktional
Gerade
Endogene Variable
Puffer <Netzplantechnik>
Funktion <Mathematik>
Whiteboard
Projektive Ebene
p-Block
Binärdaten
Signifikanztest
Chipkarte
Kategorie <Mathematik>
Browser
Parser
Mailing-Liste
Binder <Informatik>
Gleichheitszeichen
Signifikanztest
Chipkarte
Statistischer Test
Funktion <Mathematik>
URL
Offene Menge
Statistischer Test
Verschlingung
Browser
Parser
Objektklasse
Binder <Informatik>
Gruppenoperation
URL
Fehlermeldung
Router
Statistischer Test
Funktion <Mathematik>
Rechter Winkel
Mapping <Computergraphik>
Browser
Parser
Router
URL
Signifikanztest
Offene Menge
Kategorie <Mathematik>
Browser
Parser
Strömungsrichtung
Vektorraum
PACS
Gleichheitszeichen
Signifikanztest
Iteriertes Funktionensystem
Statistischer Test
Funktion <Mathematik>
Flächeninhalt
Verschlingung
Mustersprache
URL
Statistischer Test
Benutzeroberfläche
Funktion <Mathematik>
Rechter Winkel
URL
Biprodukt
Homepage
Offene Menge
Statistischer Test
Datentyp
Browser
Parser
Skript <Programm>
Garbentheorie
Default
Signifikanztest
URL
Homepage
Offene Menge
Parametersystem
Punkt
Klasse <Mathematik>
Browser
Parser
Element <Mathematik>
Binder <Informatik>
Visuelles System
Gleichheitszeichen
Gruppenoperation
Gradient
Statistischer Test
Puffer <Netzplantechnik>
Funktion <Mathematik>
Whiteboard
Rechter Winkel
Flächeninhalt
Garbentheorie
Default
URL
Diskretes System
Klasse <Mathematik>
Datenmodell
Browser
Parser
Strömungsrichtung
Routing
Kartesische Koordinaten
Digitalfilter
Gruppenoperation
Algorithmische Zahlentheorie
Statistischer Test
Funktion <Mathematik>
Verschlingung
Automatische Indexierung
Gamecontroller
ATM
Statistische Analyse
Gamecontroller
Kategorie <Mathematik>
Fehlermeldung
URL
Klasse <Mathematik>
Browser
Parser
Ein-Ausgabe
Gleichheitszeichen
Summengleichung
Statistischer Test
Informationsmodellierung
Funktion <Mathematik>
Ein-Ausgabe
Garbentheorie
Projektive Ebene
Ordnung <Mathematik>
Leistung <Physik>
URL
Elektronischer Programmführer
Template
Klasse <Mathematik>
Browser
Indexberechnung
Parser
Ein-Ausgabe
Sichtenkonzept
Template
Komponente <Software>
Informationsmodellierung
Statistischer Test
Verzeichnisdienst
Puffer <Netzplantechnik>
Schnelltaste
Whiteboard
Gamecontroller
Ein-Ausgabe
Vererbungshierarchie
Skript <Programm>
Projektive Ebene
Modelltheorie
URL
Physikalisches System
Lineares Funktional
Statistischer Test
Whiteboard
Kategorie <Mathematik>
Rechter Winkel
Browser
Parser
Skript <Programm>
Binder <Informatik>
Kanban <Informatik>
Ereignishorizont
Template
URL
Statistischer Test
Bildschirmmaske
Whiteboard
Rechter Winkel
Mathematisierung
Server
Softwareentwickler
Kanban <Informatik>
Template
Router
Kontrollstruktur
Dienst <Informatik>
Kanban <Informatik>
Videokonferenz
Netzwerktopologie
Physikalisches System
Statistischer Test
Whiteboard
COM
Statistischer Test
Rhombus <Mathematik>
Gamecontroller
Ruhmasse
Versionsverwaltung
Ereignishorizont

Metadaten

Formale Metadaten

Titel Test-Driven Development by Example
Serientitel Ember Conf 2015
Autor Billups, Toran
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/34740
Herausgeber Confreaks, LLC
Erscheinungsjahr 2015
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Are you writing software that can survive a rigorous refactor? Would a well written suite of tests make you feel more confident as you iterate? How do you get feedback as you add new features or fix a bug? Join me for an intense 25 minute live coding session where I build an ember application from the ground up test-first with nothing but the terminal and my favorite text editor! I'll share some of the tribal knowledge about what makes a great unit or functional test and how you decide to write one over the other.

Ähnliche Filme

Loading...
Feedback