Logo TIB AV-Portal Logo TIB AV-Portal

Building Rails ActionDispatch: SystemTestCase Framework

Video in TIB AV-Portal: Building Rails ActionDispatch: SystemTestCase Framework

Formal Metadata

Building Rails ActionDispatch: SystemTestCase Framework
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
At the 2014 RailsConf DHH declared system testing would be added to Rails. Three years later, Rails 5.1 makes good on that promise by introducing a new testing framework: ActionDispatch::SystemTestCase. The feature brings system testing to Rails with zero application configuration by adding Capybara integration. After a demonstration of the new framework, we'll walk through what's uniquely involved with building OSS features & how the architecture follows the Rails Doctrine. We'll take a rare look at what it takes to build a major feature for Rails, including goals, design decisions, & roadblocks.
Computer animation Open Source applications Codes Sphere platforms Twitter systems engineering systems libraries
Open Source attitudes code time Development applications TDD programme goodness processes Computer animation Software Blog testing framework systems
versions default mathematics Computer animation integrators configuration testing applications systems record
control time views unit interactive unit testing applications subset Computer animation testing framework model errors addresses systems record
app screens files Kappa Java loss browser directories applications graphical user interface Indexable Computer animation case different operating configuration testing Right pattern errors Jump systems tasks
web pages suite Actions Computer animation demo rates link views Content testing unit testing systems
Indexable server Computer animation Super integrators testing systems
control Computer animation integrators testing applications systems
suite focus integrators code Development CIs applications perspective entire Bugs programme words Computer animation Software configuration testing framework errors report systems form
implementation Computer animation decision orders sets testing argument Coloured optimal systems
presentation response implementation time sets maximal browser applications entire programme Computer animation different testing systems
Slides server screens files code forces sets browser applications Symbolic web programme Computer animation configuration testing Right systems
building Computer animation integrators closed testing Databases framework applications entire addresses systems
standards implementation functionality beta time Bugs means Computer animation framework testing progress stable systems
default implementation Barriers decision time law specific goodness Computer animation configuration testing framework freezing systems architecture
Virus default Super real decision browser subset web programme graphical user interface processes Computer animation configuration formal testing Jump systems
Virus area default Computer animation Development share testing argument systems
screens Computer animation different configuration website barrel testing browser argument systems
Actions processes Computer animation framework testing functions Part fields systems form
point message-based mathematics Computer animation time testing Transactional Rolling systems record
point current Slides server multithreaded concurrent files code integrators time unit sets loss help open subsets argument browser Bugs web configuration integers testing systems classes default constraints relation screens mapping unique Databases Transactional applications system call connections graphical user interface Computer animation configuration website Right log files figure objects record
building implementation resampling clients Part applications production Bugs Chat Computer animation framework refactoring Conversation fibers
choice implementation Open Source code confidence sources Part events mathematics Computer animation Lecture/Conference level position Results
default backup building focus Actions sources clients browser vision graphical user interface processes programming style Computer animation testing systems
point boss implementation building Open Source code views time sources projects Contracts applications Twitter expect mathematics data management Computer animation configuration level testing Right systems exception
Computer animation Open Source case Universal testing bits clients Part family number systems Bugs
suite default code inner sets browser maintenance applications several number powerful mathematics Computer animation CAP testing systems
Actions Open Source integrators real time sources ones Continuation help browser Part metadata Bugs number rates different framework testing structure position systems namespacing forces projects analysis effects Databases unit testing applications Terminal words processes environment case configuration Right procedure record
this work and the home and it hi everyone I'm really excited to be out con this year uh I mean self and
I am a senior systems engineer on get have platform systems team that's quite a mouthful but it basically means that my team is responsible for working on internal and external tools for the get have application we work on improving rails Ruby and other open source libraries as and how those tools interact with them and also the newest member of the rails score team which means that I finally on axis or elsewhere account the this knowledge what is the only important thank and the you can buy me on a sphere that Twitter anywhere on the handling codes now including my website it's all the same so today we'll talk about the new
system testing framework in around that I spent the last 6 months building will take an in-depth look at my process for building system tests roadblocks that I hit and what's unique about building a future for open source software but 1st let's travel back in time a few years
at attitudes out 2014 rails called
DHH declared that tested in development was dead and he felt that while TTI good intentions that was also used to make people feel bad about how they at the code he insisted that we needed to replace tester and development was something better than motivates programmers to test how applications function as a whole In a follow-up blog post titled TDD is dead long live testing David said today and rose there's nothing to
encourage full system tax there is no defile answering the stack that's a mistake there were going to fix it is not 3 years after
GHH declared that system testing would and should be included in Oralle's I'm happy to announce that rose 5 . 1 will finally make good on that promise because system tests are now included in the default step
you all have it the newest version rails includes cadaver integration to make it possible to run system test was 0 application configuration required generating a new scaffold in row or else 541 application will include the requirements for system testing without you having to changes or anything it just works this
is probably a good time to dress address exactly what a system test is most familiar with Cappy varying being referred to his acceptance testing framework the ideology of system testing in rows is much more than acceptance testing
the intention system test is a test the entire application as a whole entity this means that instead of testing individual pieces units of your application you test how those pieces are integrated together with unit testing you'll test they your model has a required name and then in a separate test of the controller detected error with unit testing you assume that the view must be displaying error but you can actually test this is enticing all that becomes possible you testimony easily the other name of the appropriate error is displayed in the view and the user actually sees it since and has also allow you to test how your drama strip interacts with your models using controllers that's not something we can do it any other testing framework inside Ralph right now it's but before before we get into the way into what system tests look like a how wanted to build this suggests I wanna show what looks like application when you generate a new wells 5
. 1 after the jump I'll include Kathy Barents learning what Java gems Kerry Barrass locked to 2 . 1 3 . 0 and above so that severe app can use some of the features presumption decapping bearer like many test assertions in your test directory a system test helper file called application system test case loss to be generated this file includes the public API for your kappa barycenter persistent test by defile applications will use this when him up driver is using the Chrome browser with the press cousin screen size of 1400 by 14 hundred the application requires additional set up at happy error you can include all of that in this file and he says and has the right will inherit from application system test case so when users and has
is no different operating Canberra tests except that now rails includes all of the Ural helper so you can include I use those Charalampos patterns of slash 1st come without any additional configuration this is a simple task that navigates the suppose index and asserts that the H 1 selector is present with the text post
that in your journal you can run system tested Rauss test system we don't run system has to the whole sky because they're slower than unit tests and everyone everyone we talked to run them that separates the I build anyway it was his entire surrounding the whole suite you can create custom rate tax that does that who was it system has an action I had recorded the demo because they're on to vast and you would know almost so slow them down so Mercer now write a
test for creating a post that the test visits the postural intelligence to click on the new post link in the view and we can fill in the actually to the post so title gets isn't has demo and the content with boulders just put or some and then just as the user would do this you click on the pre post button In after redirects for an assert that the it's the text on the page matches the title of the the Black Rose underground system tested repair of test system and users of whom a
server is within and chroma certain and now with this test filling in the details that we filled in a test then that's the
index test so as you can see it's super simple and they're really fast but so you may be wondering why it took
3 years to build this suggests that it is seen that complicated and a and if you're familiar with the floor price you know did actually take the 6 months weighted enacted taking 3 years it took me at 6 months there are a few reasons as system test took 3 years to become a reality the 1st is that system has needed to inherit reintegration tests so they can access the URL helpers that already exist for integration test for really slow the performance of
them was invisible for how that there is no way the rousing the persistent testing the integration tests about major backlash from the community nobody wants the tests we the to go from 5 minutes to 10 minutes that kind of performance impact simply is an acceptable the of innovation has had that happen before implementing system tests so in 2014 and the 15 I have on Patterson on speeding of integration test performance was integration testing marginally slower than controller test system has inherit from integration tests another reason that they took 3 years of that contrary to what many may think there escorting is
not heresy Darelle's feature roadmap and a it well as a volunteer effort so there isn't someone is interested in implementing a feature it's not going to get implemented of course individually may have an idea of what we'd like to see rel 6 or 7 or 8 but I hardly color a roadmap we each worker more passionate about and often featured grow out of real problems that were facing with our applications at work as is and has a really good example of its
prior were you allows a programmer at base camp when were building based on 3 we decided to add system testing through bearer I saw firsthand the amount of work it took to get system testing running our applications this is a major catalyst for getting system testing Darelle's 5 . 1 the work required to get system testing in a base camp 3 really inspired the motivation to work on this feature so that others could do less work in our application and focus on what's really important writing software so this past August David asked me if I would be interested in getting happy bear integrate integration into rose 5 per 1 at this is the exact words he said to me I most of my work on Rouse had been in the form of performance improvements refactorings a bug fixes so I was really excited to work on a brand feature for the Rails framework there is 1 caveat I every
step in the report I know that sounds ridiculous but beyond running 3 or 4 system tested base camp which I admittedly struggled with I had never set up an application for cadaveric or entire test suite Mr. Johnson prose go I got to experience first-hand was hard about setting up cadaveric especially from standpoint I had no assumptions about was easy or hard when I began development system tests having no experience of captive error allowed me to see the feature that was building solely from the perspective of what works for rails and Rose applications and is not to say the cadaver is anything wrong but rather is actually opinionated in will coach a look and feel like for around them for enabling cis and has is easy and require little set up to the programmer focus on their code rather than Test configuration tha
when implementing something that you're unfamiliar with its best I have a set of guiding principles in order to make decisions about design and implementation without these goals it's easy to get sucked into scope creep or bike should arguments about the details having guiding principles means that for any decision you ask yourself does micrometres guidelines provides a billing system test I of course used the roles doctors this as I
mentioned earlier today was a set is a set of 9 colors that drive decision-making encode the goes into the Rose ecosystems is billing system has i would regularly basis and on the rails doctors system has me all these requirements in some way but I want to look at a couple of the principles and how system has infrastructure needs those specific requirements the 1st is optimizer
programmer happiness this pillar is the overarching theme in all of rails present entire goal is to make programmers happier and frankly I'm spoiled because of this rather makes me happy and I'm sure it all of you happy to be here you will be response otherwise we didn't make me happy all the implementation required a cabin they're
running in Arles applications the following year the bare minimum that was required for your application use colossal and crown persistent testing many applications and it there's multiple times you'll these multiple drivers of the tests we were had much worse because they wanted to use support different browsers of custom settings rose 5 . 1 system has nearly that you
can use cadaveric about having configure anything in your application generating new roles 5 . 1 out and all the set utterances and has done programmer happiness to the driving force behind getting system testing out of your application into rails you don't need to figure out how to initialize cadaveric or other applications you don't need a sudden driver you don't pass the browser and you don't need to know how to change a web server systems has arouse abstract way all of this work so that you can focus on writing code that makes you smile they all use the
symbol little method driven by when you generate a new application a test of a file is generated along with it if you upgrade your application this file be generated when you generate a for system has to scaffold all the code we looked at previously is contained right is 1 method that driven by initializes cadaveric around to assess the driver slide in the browser grown and customizes the screen size browse values
being a single system a monolithic framework if you will that addresses the entire problem of billing system tests from databases to used to WebSockets and testing by being an integrated system or else reduces duplication outside dependencies so you can focus on building application instead of installing and configuring outside tools prior rose 5 . 1 a whole didn't address the need for system tests by adding this
feature remain were browsing were complete robust and integrated system as 2014 roles incomplete when it came to system test rose 5 . 1 close that gap by adding having their integration you no longer need to look outside of roles to add system testing your applications now values
progress over stability yes this mean that often betas release candidates and even finer releases have a few bugs in them but also means the Rosen stagnated over time rather than around for many years and the problems that made in that time is a standard we care about our users we also care about the framework meeting the demands of the present and future which means that sometimes adding improvements that will be stable you also know that when a feature eonsonant note features just rental someone else actually uses it I can spend years working on testing improving system test but ultimately
Amazon mind you there there were few bugs laughter I did this because I knew that the community would find the answers to the to the problems they do not to solve and find new issues in implementation that I just had a lot of by balancing progress overstability merging really and running system test when they were 95 % on is hunter done many new members test of the beta release and provide a bug fixes probing is present in system tests a few added some functionality was moved obstinate cadavers said since and has progressed more by merging when they were then there were a few bugs left them my waiting until they were perfectly stable now that we looked at the driving
principles behind system testing Letterman the decisions implementation an article in the law and imitation architecture in the Rails framework we're going to look at wired to a specific configuration defaults and the overall of system testing aroused framework and
the 1st configuration give all I wanna talk about is wide show selenium for the driver the barrier to entry freezing system test should have 0 set up an easy for beginners to use it can be very deep on drivers rack tests and this is a good default persistent testing because raptors contest JavaScript and can take screenshots it's not a devolver some learning how to actually test the system I also had a quite a few folks time and the poor aggressive about colder days was a better choice but because it was faster and that's what they used in their acts while which while it is true that holders is popular and faster also Oechslin infer the reasons so I mean and require the same kind
of system solve all pollutants requires fond a cadaver has a but it had never WebKit has a dependency on the T both the system installed on some Orelle's contain since alignment have the same kinds of requirements in a centrist went into the to be the default overfold erased the cadaver WebKit it 1 of the coolest things about someone is that you can actually watch it run in your browser wilderness and having the web had this drivers which means they don't have a graphical interface while they will produce screenshot they can test answered you can actually see the rod the and watching selenium test run in a real browser-like grammar fireboxes almost magical which also makes a better for beginners but new programmers especially those learning cadaver aroused uh can spend that we see the tests right and it's easier to discern what's happening or what they might be doing wrong that's this process and has if you don't like selenium the driver options are extremely easy to change To change evil
driver system has are is the viruses and has used open your system has helper and change the jury by method from Slonim against of course you need result and unless an Abidjan cheer jump out the changing the driver setting itself is super simple Rose won't stop you for passing whatever everyone here but can be variable only accept sodium poulterers Cavarero and wreck test another decision that differs from cadavers defaults is that reality is the Chrome browser was there Firefox prime was widely used in the greater
market share the Firefox in general I think the development is the chromosome is seen like a sensible default from that standpoint the reason I chose with that for a while Firefox was broken and always lie in 2 . 5 3 is a sense been fixed but when I started working on it it it was what are the motivations i have for making the fulcrum there was literally no way I can work system test and have the default configuration be broken firebox now at a slant on it and if you upgrade both Firefox in your sledding my driver gem you can use Firefox and if you want to spend up to a
cytochrome you can simply change the using keyword argument for to Firefox using argument is only used by selenium of assigning viruses the other drivers are helpless and I have a duty another support whereas in the future like Safari area explorer where invigorating given
by as a few optional arguments that are supported by selenium the screen size arguments that the browsers max height and with which is good for testing your website at different brower browser sizes or setting those size for screenshots given by
also takes an auctions hash which is which is passed to the browser initialization this can be useful for passing options that don't explicitly defined are explicitly defined in rails they're accepted by capping barrel like the euro option
1 of the coolest features of system has the they automatically take screenshots where test fails this is restraining failures so you see what went wrong this work to all driver support of AI Capone barracks apparatus included in the
system has grown on arose framework side is an after turn method that takes the screenshot of the test field hands free jobs are supported aboriginal restrain Johnson action so person the
test search part the test a failure screenshot
instead of demo and around attaches like minimal form instead of the and now you can
see that the test failed and in the output of the test there is a need to own of image and know now we can see in the
test that the test set the screenshot accesses intestinal but the test is looking for system has value screenshots and so we can actually see white felt you can also take a
screenshot at any point in you were when you're tested running by calling take franchise USofA tools like per se CI for comparing different changes or receiving a screenshot of whereas it looks like at whatever point in your test run 1 of the less obvious features of system testing is that there is clear is no longer required those of you who work at capping there before it will know that transactions on roles test runs of cadaveric when get properly rolled back is been the status quo for a long time that had record which is broken and unable the roll back transactions when test for threaded the messages in the problem was when a test started
started rails testing code would start a transaction with the database connection and then the web server would open a 2nd connection to the database on a separate thread when the test runs database integer updates will happen in a 2nd right instead of the threat of a transaction when a test finishes in of data records will be rolled back because the picture thread cannot see the web server threat the if the interchange records are rolled back at the end of the test subsequent runs will fail due uniqueness constraints or other issues but data as an embarrassing amount time of a six-month billing system just trying to solve this problem it took me a while understand the relation of actor record and I was surprised how many years you didn't just accepted that this was an issue with rails I want solid so that we didn't have to force users to yet use yet another dependency the problem and solve it and I'll be honors that concurrency is in 1 of my strengths so I had ask for help in the 2 people who know more about Active Record currency than I do and Harrison and that Draper and this is that way picture of me it the problem with that aromatic differing opinions on how to fix the problem I of its apparent way which was a child actor record just check the connections back in when they're done with them but this broke like 75 per cent of Active Record tests and selling any acceptable I and as that is because then you're trying to check the connection while the transaction at the opening you that's the hand you that um mapping came up with a different solution which was to force all the friends to use the same connections when the test starts there uh the transaction started on and a database connection is opened and the server started its forced to connect to the database using the already existing connection instead of creating a new 1 that way we can see each other other then all of a database inserts and updates happen on the same connection as the original test transaction and then they can all be rolled back when the test transactions close without Matthew units help by would not have probably figure out how to fix this problem and you all have used is there forever this that a lot of time looking at individual settings in the public API persistent test so that it the uh so it's something to look at the plumbing that makes all of this work None of that we look at this point is an aviation ever have to touch on which you find bug and this is just everything that arousal subtracted away so you don't have to worry about configuration and can focus on your tests system has lived in action-packed
under reaction destruction status an inherent integration test so we can use all of the neural helpers at that are already implemented on the integration site this entire class can fit on the slide so I'm going go through the methods as they're called by the test point starting when you when system has to start application is called 1st this permits the RaTrav answers the server your system test helper file then calls the driven by method this is where the default configuration settings are Valentin when Jeremiah is called a new system testing driver classes initialized the arguments that he passed the driver object is initialized with name browser screen size and options rather screen size and options are only used by the driver when it's sodium the running test is that initialized it's important call use of the driving here's the driver is set when the test is initialized and not when the past is loaded we use it calls a drivers money their register method is how can mayor sets the rather chrome with the options and screen size past driven by and finally use method call set up which simply says the current driver mapping can to the driver you pass driven by this is the basic plumbing required yeah uh required rails to guesses and test running it's relatively simple but it's great Allen and you have to put your application 1 of the things that struck me about working on
this feature paralysis how different it was from building features for product client I think this is in part because the workers so public 1st choir product work is usually secret to the big revealed you're probably thinking diets oversaw
swords fiber to public but almost all the work that done previously was related to performance improvements refactorings and bug fixes these are things that folks don't come out of the woodwork to comment on this is an antenna have a work if you let people care a lot about when it comes to style implementation it doesn't change the application lecture touching the public guys but adding a random testing framework that something everyone has an opinion about In 3 and has 4 questions overnight 11 reviews and 161 comments the money when including all of the conversations we have a base camp chat about it there is however 1 of the big challenges of over sorcery it is really
difficult and not costly feel like hearing judged gentlemen source work makes you extremely vulnerable it can feel like every commit every comment every code changes open a public scrutiny and this is 1 of the hardest things they're working in open source and 1 of the things that I think he's a new contributors from coming and working on but it starts I monorails 14 I still get an adrenaline rush when I pushed to master I so sense when event if the bill fails after a merger pull requests I've mean doing open source for many years and I still feel vulnerable instead of long-term incompetent and keep your cool when doing publicly visible work
out the I often had to fight the urge to read but all that because I was tired of eating choices that I made you know the other person is right it's still exhausting Ophelia having the same conversation over over over again about implementation but really public debate is an inherent part of a resource in you're always going to have to argue for your position where confidence is shaken a unique it can be attacked tempting to look for ways to find consensus among everyone was reviewing your work the desire to find consensus is a unique to open source but what is the unito resources the stakeholders you're trying to find consensus with have varying levels of investment in in the end result when you billion
feature for a the when you million feature for the company you work for the client usually no we're stakeholders are those that you will care most about the feature that you're working on but when when source you don't really know who is going to care until you open up all requests of course I aroused team was a staple in Carolina House and has 4 implemented the cabin in care about the future as well but it was a repair for all of the other people would care and of course caring is given by a lot of productive and honesty backup union members but still really overwhelming to feel like I used to be every rather ideologies of simplicity differ
a lot from Kevin bears ideologies of lots of features and all the individuals were interested in the feature had differing opinions as well which driver was the rest evil was OK initiates cadavers longtime defaults a rat testis Liam wasn't even desirable to include 3 jobs they default was to change the default browser Firefox Chrome I struggle and how to respect everyone's opinions while billing system test but also maintaining my sense of ownership I knew that might try to please all through 3 groups and build system test by consensus but I wanna pleasing no everyone would about happy because consensus is the enemy of vision sure you end up adding everything everyone wants that the feature will lose focus in the code style and I lose everything I know it was important I need to figure out a way to respect everyone's opinions about making system tests a hodgepodge of ideologies or feeling accurate everything I care about I have to remind myself that we
all have 1 goal J. integrated system testing is around us even if we disagreed about the the implementation this was our common ground With this in mind the view is that you can keep your sanity when dealing with multiple ideologies in the open source world when the biggest
things is to manage expectations in open source or no contracts the general learning accountable except for yourself and no 1 else is going to hold you accountable either your boss and your way you're the person who has so on the scope and the person who has to say no there are a ton of extra features suggestive for systems has that I would love to see that when implemented all of them is still in the aroused today I had a manage the scope the excitations of everyone involved to keep the but the project in budget while really respected everyone's opinions on system tests alternately as building feature for rail system test Musilek look into needed to fit into arouse look and feel to do that I had ordered ideologies that system testing should be robust and have many options the something wrong with this approach doesn't follow the Rouse doctrine it is gonna burden for right here not happening system testing era application relative had to take them on in the end it was the rails team who was going to decide when system has from mergeable since I was the feature for rails I 1st on rose principles and Royals a 2nd we're building open-source features you're building something for others the open suggestions the features of the might change for the better even if you don't agree you'll have you'll you have to be open the listening to the other side of things it's really easy to kg about the code you work so hard right I thought that by bearishly be many protective of cysteine Taskar when someone wants merge get adds encoder changed how it works I wrote a level of time and effort into its on protective of how it looks and feels but I also have to remember that it's no longer minor never was my anomalons everyone uses rels and so I me a suggestions tweets and changes which brings me to my last point only source doesn't work without
engineers a perfect example of this is how I'm assistant house when I knew they were not recent stable I did this because I didn't know how to fix a few bugs like displaying the correct number of assertions your houses and has had runs isn't has separately from Rauss test the best part was that the system works you can't that you can't push an unfinished product by ask your client to contribute to an improve upon your work and fix bugs
or with open source you can build a foundation brothers to work off of the universe not perfect I don't emerged as has known issues because I was lazy I merge them because I knew that contributors to help me fix the problems when they tested them in a real application and because of this when wrote the rest you release but Release Candidate 1 less than a month after the 1st bit all the known issues that I knew about before merging had been fixed by other people and problem
cadavers make here added many test assertions a cap there previously users were running system passed with many tests would see an incorrect number of assertions and failures because cadaveric handles those large that way this is 1 of the things I wasn't sure how to fix it I knew fixing the roles code was wrong but I needed categories by and fix upstream so is greater than maintainer was willing to have this feature for rails and it's a huge win vs. test Robert 50 requested changes and has be don't run with the whole suite we don't system has to run when you run Rauss test your application because they can be slow and they're using an actual browser and by default we're run them a separate test Mr. venturous held
major changes to Jeremiah so the use upper subclass faces rather globally when I originally designed system has it was intended to be a global setting because I assume that if you were like a cadaver power user just would be using to revise anyway but once that isn't assurors became clear that others were really excited about using the neuron by method instead and after setting up multiple drivers said these 2 interiors help make system has a lot more robust range and
help improve the screenshots to make that and then configurable it and to display them differently based on environment setting so here see Ivester terminal I know this is a problem words but I really wasn't sure how to fix it are you know with an elegant and easy-to-use solution this is also his 1st contribution to the Rails framework and all these improvements forces and has highly the real beauty of open source but it doesn't work without contributors it doesn't work that he open source for everyone by anyone katrina was source is an easy especially mature framework framework like growls but rather than astounding Carson bright future because of all the contributors that care I don't believe anyone says roses dying describing the future is never in brighter roles can and will benefit their contributions in the future just like the contributor to question his assistant as you too can makes us and has aroused better but in you can help define roses future I know better next year roles rose 2018 I see some of you talking about the contributions to rouse open source I will make you enjoyed
learning about system has and how how they work and my process for a feature I also underlines fired into regional resource especially rels they be looking to learn more about contributing Durell stay for Alan Alex Hitchens talk which is of which is annexed after the break thanks for listening and that without the question would be is the relative unity take a position on testing and courses it has more money at work so the 1st part of that is 1st as allows the to white exists that so now the rest and that their demand kinds of testing and because system testing can be a lot slower Rediger's using your browser and others would also stuff isn't necessarily make sense for us to push system has as like you have to system has and you can always has enhanced were not only do we need unit tests from rails tomorrow as far as I'm aware of but I did I would like to make a lot of people really mad so is unlikely that we would do that so you should you want you want use that now you don't have to like outside or else you system test and that's the the next part of it so the question was how do I find time to contribute to relevant open-source with my full time job I so that's really hard and I think that's 1 of the reasons why sometimes I would feel like really burned analysis and has because just tired of spending my weekends were not and and I I balance sort of weird Our again I do have some kind of record of source but that's not my main job so I find a balanced by the ligand something really excited about and it's not for a given that I for based on what I was there I would but I would only work on things that I really was excited about or and they're using 7 hours excited about because he upon honey in the but yes so that's the hard I think that 1 of the things that we get is like if you commit measure of we'll give you some open source time and even if the even if you have 1 1 they're Mumford you give back and if you do it in a group so that it's easier to get wrapped up on a project not staying up to date on using around the work staying up to date will actually help me more like the predefined bugs arouse because not everyone is using up to the applications so why are you doing now you might find a bond and then you get that if you fix it then you get that as a contribution as well from features obviously take like a lot more time and effort that well depends and then using a white usually has abundant yield a more contains then feature Israel an opinion on how we how you check your system has the driven by method it structures like your configuration yourself so that we have an opinion on everything else that we can add like waste different ways of writing Canberra test so you wouldn't write like we can we can overwrite visit right in and change it to get post you left that the way it was so generally rate than the cadaver way unless there is a compelling reason to add a more simplistic metadata or we mean if we wanted to do that we haven't done so we get to regular cadaver away until we change that if we do not was the 1st the question was what was the most exciting more fun part of knowledge about building this feature I'm the damage in this so this 0 well it it kind of went on a long time either porpoises over 3 months so merging it was the most fun part but because it here but have this final very it's done like everyone gets to use it and this is 1 I think 1 of the like the most well tested various to which is really exciting because it's a wire was user was really excited about system testing procedures and a few other things we had when we have more bugs found and fixed in our 1st fear them I think we never at so in that that was also really exciting about it the question on how to settle on a name for this and I actually left bad out out of the talk because I thought it was of interest I really like we pick 1 name so 1 the the name it a long time ago again the base camp project that we have heard rails and I was a kosher make that was like rail system has case but only in the anywhere because you don't put under the else ties namespaces stages historically the rails ministries have in the under the elsewhere around he has no other testing framework inside of that size then it make sense In the do and heart regeneration tests and then do fix the Active Record thing we thought that there was enough to record the tendency or even possibly a database clear dependency so then I liked and everything related to its own genome and then like a writer forward somebody like a name and then there was a whole debate and a number of move back into the integration tests and so that and that have ended up with um applet action dispatch system has case and that also highlighted that integration tests really weird electrical integration test not integration past because everything else is test case so made on effects 1 then online amount of time so combining after sigh Proceedings k oppression answers their so paths
by which I mean