tag:blogger.com,1999:blog-7821856652257554779.post77343506966078808..comments2025-09-20T09:27:07.510+02:00Comments on Andrzej on Software: 15 TDD steps to create a Rails applicationAndrzej Krzywdahttp://www.blogger.com/profile/06399276063142826365noreply@blogger.comBlogger33125tag:blogger.com,1999:blog-7821856652257554779.post-39659330233607446762008-10-13T07:49:00.000+02:002008-10-13T07:49:00.000+02:00物流网是现代物流产品设备资讯传媒. 中国水工业自动化网面向给排水领域设计院所、自来水厂、污水处理厂及...<A HREF="http://www.modern56.com/" REL="nofollow">物流</A>网是现代物流产品设备资讯传媒. <A HREF="http://www.shuigongye.com/" REL="nofollow">中国水工业</A><A HREF="http://www.shuigongye.com/" REL="nofollow">自动化</A>网面向给排水领域设计院所、自来水厂、污水处理厂及市政管理部门,面向工业污水处理、-<A HREF="http://www.gongkong.com/Common/ProductType/VISON/?m=17" REL="nofollow">机器视觉</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/SONSOR/?m=18" REL="nofollow">传感器</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/FIELD-INSTUMENTS/?m=19" REL="nofollow">现场仪表</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/ADJUST-INSTRUMENTS/?m=20" REL="nofollow">显示控制仪表</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/ANALYSIS-INSTUMENTS/?m=21" REL="nofollow">分析测试仪表</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/ACTUATOR/?m=22" REL="nofollow">执行机构</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/SAFETY/?m=23" REL="nofollow">工业安全</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/ELECTRIC/?m=24" REL="nofollow">低压电器</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/POWER/?m=25" REL="nofollow">电源</A><BR/>工业制水、水文水利、楼宇供水及水泵应用等水工业领域用户,发布和交流各种传感器、检测分析仪表、SCADA设备、监控系统及调速装置的产品、技术、应用、解决方案及市场信息;探讨、推进我国水工业自动化技术、节能技术应用发展。视频,多媒体,自动化,工控视频,自动化视频, <A HREF="http://www.gongkong.tv/" REL="nofollow">PLC教程</A>,<A HREF="http://www.gongkong.tv/" REL="nofollow">变频器教程</A>,软件教程,自动化行业视频新媒体的创造者和领先者-工控TV,教程,播客, <A HREF="http://www.gongkong.com/Common/ProductType/PLC/?m=1" REL="nofollow">PLC</A>,可编程序控制器,自动化软件。同时产品频道有<A HREF="http://www.gongkong.com/Common/ProductType/DCS/?m=2" REL="nofollow">DCS</A> -<A HREF="http://www.gongkong.com/Common/ProductType/PAC/?m=3" REL="nofollow">PAC</A>- <A HREF="http://www.gongkong.com/Common/ProductType/PC-BASED/?m=4" REL="nofollow">PC-BASED</A>-<A HREF="http://www.gongkong.com/Common/ProductType/CPCI-PXI/?m=5" REL="nofollow">CPCI</A>-<A HREF="http://www.gongkong.com/Common/ProductType/CPCI-PXI/?m=5" REL="nofollow"> PXI</A>-<A HREF="http://www.gongkong.com/Common/ProductType/EMBEDDED/?m=6" REL="nofollow">嵌入式系统</A>-<BR/><A HREF="http://www.gongkong.com/Common/ProductType/SCADA/?m=7" REL="nofollow">SCADA</A><BR/><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/SOFT/?m=11" REL="nofollow">自动化软件</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/HMI/?m=12" REL="nofollow">人机界面</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/ETHERNET/?m=8" REL="nofollow">工业以太网</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/BUS/?m=9" REL="nofollow">现场总线</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/WIRELESS/?m=10" REL="nofollow">无线通讯</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/inveter/?m=13" REL="nofollow">低压变频器</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/HV-DRIVER/?m=14" REL="nofollow">高压变频器</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/STEP/?m=15" REL="nofollow">运动控制</A><BR/>-<A HREF="http://www.gongkong.com/Common/ProductType/DRIVE/?m=16" REL="nofollow">机械传动</A>Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-91380845112220747042008-08-01T23:51:00.000+02:002008-08-01T23:51:00.000+02:00Good web..........rx pharmacyGood web..........<BR/><BR/><BR/><A HREF="http://www.onlinerx-pharmacy.com" REL="nofollow">rx pharmacy</A>Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-48880309095802892272008-04-13T13:10:00.000+02:002008-04-13T13:10:00.000+02:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-20214623922105614072008-03-24T13:07:00.000+01:002008-03-24T13:07:00.000+01:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-47357164009554153592008-02-16T12:10:00.000+01:002008-02-16T12:10:00.000+01:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-34891378813314259212007-10-31T21:15:00.000+01:002007-10-31T21:15:00.000+01:00On step 5, I'm getting this error:[root@remandev m...On step 5, I'm getting this error:<BR/><BR/>[root@remandev migrate]# rake db:migrate<BR/>(in /usr/local/apache2/htdocs/testrails)<BR/>rake aborted!<BR/>uninitialized constant CreateWords<BR/><BR/>(See full trace by running task with --trace)<BR/><BR/>Just to verify, I'm supposed to replace the entire contents of the file db/migrate/001_create_words.rb with what is in the text field?<BR/><BR/> - DaveUnknownhttps://www.blogger.com/profile/04296976754978054689noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-39434765049334391012007-09-26T05:43:00.000+02:002007-09-26T05:43:00.000+02:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-25839226914694291622007-09-21T14:51:00.000+02:002007-09-21T14:51:00.000+02:00Hi Vitor,Sure, you can translate it to portuguese!...Hi Vitor,<BR/><BR/>Sure, you can translate it to portuguese! Send me a link when it's done :)<BR/><BR/>AndrzejAndrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-9928350432278329822007-09-21T14:28:00.000+02:002007-09-21T14:28:00.000+02:00Hello, Andrzej!I find your post, as well as your b...Hello, Andrzej!<BR/>I find your post, as well as your blog, very interesting. <BR/>I'm starting to write a blog about rails and TDD as well. <BR/>I think your article it would be a great start for me. <BR/>My blog is at http://www.vip2web.com and is written in portuguese, so i'm here to ask you if i could translate this post and put into my blog?<BR/><BR/>Thanks in advance!<BR/><BR/>Best regards,<BR/><BR/>Vitortestandohttps://www.blogger.com/profile/18004888559043441463noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-51943869557694291662007-09-09T23:32:00.000+02:002007-09-09T23:32:00.000+02:00Excellent website. Good work. Very useful. I will ...Excellent website. Good work. Very useful. I will bookmark!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-20289338413008521772007-08-28T18:17:00.000+02:002007-08-28T18:17:00.000+02:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-63049362784870327292007-08-18T10:28:00.000+02:002007-08-18T10:28:00.000+02:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-91911426277443424092007-08-18T00:35:00.000+02:002007-08-18T00:35:00.000+02:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-25156758751541156052007-06-14T00:54:00.000+02:002007-06-14T00:54:00.000+02:00Congrats Andrew!Thank to this tutor this is my fir...Congrats Andrew!<BR/><BR/>Thank to this tutor this is my first hand on experience with Rails/Ruby/Rake/Gem/Sqlite/mocha - Oh My! :-)Tomasz Nazarhttps://www.blogger.com/profile/08995372426227472561noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-18548103215782838322007-05-27T16:18:00.000+02:002007-05-27T16:18:00.000+02:00Great tutorial. This is sound advice for starting ...Great tutorial. This is sound advice for starting some good habits with rails. You're right about so many blogs emphasizing the quickness of rails and neglecting the testing.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-84258371267844915802007-05-24T11:46:00.000+02:002007-05-24T11:46:00.000+02:00Anonymous,I see your point here.First, this articl...Anonymous,<BR/><BR/>I see your point here.<BR/><BR/>First, this article doesn't cover all aspects of testing an application. Normally, I would start with an acceptance test (acceptance meaning something like a Selenium test). The acceptance test would describe how the user interacts with the system. This is a good place to test (indirectly) that we use something that stores data (like a relational database).<BR/><BR/><A HREF="http://andrzejonsoftware.blogspot.com/2007/05/and-some-more-tdd-steps-with-rails.html" REL="nofollow">The second part of creating the Words application</A> covers the Word.add_content method which is more related to databases.<BR/><BR/>As for the code generation, except for the application skeleton (rake file, logs directories) I don't really generate code here. All the script/generator calls generate only stubs for classes (class and method declaration).<BR/><BR/>Does it answer your questions?Andrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-42940828038410087672007-05-24T10:38:00.000+02:002007-05-24T10:38:00.000+02:00matte, brian,Thanks for nice comments!Typo fixed.matte, brian,<BR/><BR/>Thanks for nice comments!<BR/>Typo fixed.Andrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-20281430275245500952007-05-24T10:37:00.000+02:002007-05-24T10:37:00.000+02:00Aaron,Cool t-shirts!It took ma a while to explain ...Aaron,<BR/><BR/>Cool t-shirts!<BR/>It took ma a while to explain my friend (a non-IT person) why a piece of code can be "guilty" :-)Andrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-31674761970060762652007-05-24T10:35:00.000+02:002007-05-24T10:35:00.000+02:00This comment has been removed by the author.Andrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-3280864823056704642007-05-24T09:18:00.000+02:002007-05-24T09:18:00.000+02:00Can you elaborate on how using a code generator fi...Can you elaborate on how using a code generator fits with the TDD approach of "write the test, let it fail, then write the code to make the test pass", and having that drive the API design and the choice of what application behavior is implemented?<BR/><BR/>For example, why is the application even trying to connect to a database? What test code has driven the need to add DB code?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-39680031119369751492007-05-23T22:25:00.000+02:002007-05-23T22:25:00.000+02:00I like your post. Testing seems to be easiest whe...I like your post. Testing seems to be easiest when you start with it from day one of an application. I like how your tests drive your development. (Your first step was to call rake test - which told you your database wasn't configured.)<BR/><BR/>Posts like these will only help increase the practice of writing good tests. Thats great because we all have a vested interests in good tests - you never know when you'll be called upon to work on an application someone else has built. <BR/><BR/>I carpool with a good friend and we 've made some tshirts that promote good programming practices like <A HREF="http://www.printfection.com/codesmack/All-Code-Is-Guilty/_s_58243" REL="nofollow">testing</A>. Check out this shirt design and let us know what you think.<BR/><BR/>Happy testing - and thanks for the article.Aaron K. Hawkinshttps://www.blogger.com/profile/02428385831591419865noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-39084972010316336622007-05-23T12:39:00.000+02:002007-05-23T12:39:00.000+02:00Thanks for your tutorial! I live very much TDD!Thanks for your tutorial! I live very much TDD!mattehttps://www.blogger.com/profile/10115200053531160410noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-55504147193071309662007-05-23T09:50:00.000+02:002007-05-23T09:50:00.000+02:00Terrific tutorial.To fix in Step 14: the rhtml is ...Terrific tutorial.<BR/><BR/>To fix in Step 14: the rhtml is missing ampersands before "word".Unknownhttps://www.blogger.com/profile/14033548492204586804noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-20418686078127280442007-05-21T16:32:00.000+02:002007-05-21T16:32:00.000+02:00Looks shiny, but your example uses assert_tag, whe...Looks shiny, but your example uses assert_tag, whereas nowadays assert_select is typically a much better option (and I believe assert_tag is deprecated).<BR/><BR/>In this case, I believe the code would be:<BR/><BR/> assert_select 'div', /czesc/<BR/> assert_select 'div', /hello/<BR/><BR/>But I may be misunderstanding what the assert_tag code is doing (this code checks for a div with content that matches /czesc/, and a div with content that matches /hello/).Antoniohttps://www.blogger.com/profile/00685775039560712665noreply@blogger.comtag:blogger.com,1999:blog-7821856652257554779.post-65049232801743568182007-05-16T03:43:00.000+02:002007-05-16T03:43:00.000+02:00Mr Interested,Thanks for a positive comment! I'm g...Mr Interested,<BR/><BR/>Thanks for a positive comment! I'm going to blog more about testing.Andrzej Krzywdahttps://www.blogger.com/profile/06399276063142826365noreply@blogger.com