I have a not-so-rails process that I''m developing in Rails. The Rails part is all the admin/configuration stuff. the non-so-Rails is what it actually does. What it does is this: submit a form to a website wait for email report remove attachments do "stuff" with attachments I''m trying to figure out how I can TEST something like this without pounding away on 100''s of web forms. They are "expensive" to generate and time consuming to wait for them. right now I''m doing the primate approach of running the entire thing end-to-end and seeing what worked and what didn''t. Also, along with this comes another question. How do I write to logs for these not-so-Rails processes? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 18 June 2011 10:04, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote:> I have a not-so-rails process that I''m developing in Rails. > The Rails part is all the admin/configuration stuff. > the non-so-Rails is what it actually does. > > What it does is this: > submit a form to a website > wait for email report > remove attachments > do "stuff" with attachments > > I''m trying to figure out how I can TEST something like this without pounding > away on 100''s of web forms. They are "expensive" to generate and time > consuming to wait for them.Put all the clever stuff is in methods in models (mostly non ActiveRecord models presumably) then your unit tests should be able to test most of it using fake data without having to go off to the third party website or wait for emails and so on. Then you just have to check that the top level hangs together using a few end-to-end tests.> > right now I''m doing the primate approach of running the entire thing > end-to-end and seeing what worked and what didn''t. > > Also, along with this comes another question. > How do I write to logs for these not-so-Rails processes?Can''t you use the logger in the normal way? Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Sat, Jun 18, 2011 at 5:13 AM, Colin Law <clanlaw-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> On 18 June 2011 10:04, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote: > > I have a not-so-rails process that I''m developing in Rails. > > The Rails part is all the admin/configuration stuff. > > the non-so-Rails is what it actually does. > > > > What it does is this: > > submit a form to a website > > wait for email report > > remove attachments > > do "stuff" with attachments > > > > I''m trying to figure out how I can TEST something like this without > pounding > > away on 100''s of web forms. They are "expensive" to generate and time > > consuming to wait for them. > > Put all the clever stuff is in methods in models (mostly non > ActiveRecord models presumably) then your unit tests should be able to > test most of it using fake data without having to go off to the third > party website or wait for emails and so on. Then you just have to > check that the top level hangs together using a few end-to-end tests. >Essentially then the two steps of "looking for an email" and "dumping the attachements to files" can''t really be tested as part of any Unit level testing. But I can run through the rest of the content. Now that I think about it, I suppose I could do something like "look for an email" in a different directory and move it into the INBOX -- then I can test the applications execution of looking for an email and extracting the attachments. It''s a little bit of a hack - I''ll never really have a 100% test until I hit these web sites.> > > > > right now I''m doing the primate approach of running the entire thing > > end-to-end and seeing what worked and what didn''t. > > > > Also, along with this comes another question. > > How do I write to logs for these not-so-Rails processes? > > Can''t you use the logger in the normal way? > > I assume so, but I''m not sure where/how to introduce logging into mymodules which is consistent with the Rails framework. I didn''t really want to create two sets of files for application logging.> Colin > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 21 June 2011 13:21, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote:> On Sat, Jun 18, 2011 at 5:13 AM, Colin Law <clanlaw-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote: >> >> On 18 June 2011 10:04, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote: >> > I have a not-so-rails process that I''m developing in Rails. >> > The Rails part is all the admin/configuration stuff. >> > the non-so-Rails is what it actually does. >> > >> > What it does is this: >> > submit a form to a website >> > wait for email report >> > remove attachments >> > do "stuff" with attachments >> > >> > I''m trying to figure out how I can TEST something like this without >> > pounding >> > away on 100''s of web forms. They are "expensive" to generate and time >> > consuming to wait for them. >> >> Put all the clever stuff is in methods in models (mostly non >> ActiveRecord models presumably) then your unit tests should be able to >> test most of it using fake data without having to go off to the third >> party website or wait for emails and so on. Then you just have to >> check that the top level hangs together using a few end-to-end tests. > > Essentially then the two steps of "looking for an email" and "dumping the > attachements to files" can''t really be tested as part of any Unit level > testing. But I can run through the rest of the content. > Now that I think about it, I suppose I could do something like "look for an > email" in a different directory and move it into the INBOX -- then I can > test the applications execution of looking for an email and extracting the > attachments. It''s a little bit of a hack - I''ll never really have a 100% > test until I hit these web sites.By splitting the task up into separate methods in the models you will make it much easier to test and maintain. Your individual method tests can concentrate on exercising that method, firing unusual conditions at it and so on, to give you confidence that each method does everything it is supposed to. This is not a hack, this is the best way to do it. Then, as I said, you just need minimal integration level tests to confirm that the whole system fits together.>> >> > >> > right now I''m doing the primate approach of running the entire thing >> > end-to-end and seeing what worked and what didn''t. >> > >> > Also, along with this comes another question. >> > How do I write to logs for these not-so-Rails processes? >> >> Can''t you use the logger in the normal way? >> > I assume so, but I''m not sure where/how to introduce logging into my modules > which is consistent with the Rails framework. > I didn''t really want to create two sets of files for application logging.I meant that you can use the Rails logger to log messages to the standard logs. See section 2.3 of http://guides.rubyonrails.org/debugging_rails_applications.html for how to do this. Also the rest of that guide is well worth digesting, and all the other guides for that matter. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Tue, Jun 21, 2011 at 8:37 AM, Colin Law <clanlaw-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> On 21 June 2011 13:21, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote: > > On Sat, Jun 18, 2011 at 5:13 AM, Colin Law <clanlaw-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> > wrote: > >> > >> On 18 June 2011 10:04, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote: > >> > I have a not-so-rails process that I''m developing in Rails. > >> > The Rails part is all the admin/configuration stuff. > >> > the non-so-Rails is what it actually does. > >> > > >> > What it does is this: > >> > submit a form to a website > >> > wait for email report > >> > remove attachments > >> > do "stuff" with attachments > >> > > >> > I''m trying to figure out how I can TEST something like this without > >> > pounding > >> > away on 100''s of web forms. They are "expensive" to generate and time > >> > consuming to wait for them. > >> > >> Put all the clever stuff is in methods in models (mostly non > >> ActiveRecord models presumably) then your unit tests should be able to > >> test most of it using fake data without having to go off to the third > >> party website or wait for emails and so on. Then you just have to > >> check that the top level hangs together using a few end-to-end tests. > > > > Essentially then the two steps of "looking for an email" and "dumping the > > attachements to files" can''t really be tested as part of any Unit level > > testing. But I can run through the rest of the content. > > Now that I think about it, I suppose I could do something like "look for > an > > email" in a different directory and move it into the INBOX -- then I can > > test the applications execution of looking for an email and extracting > the > > attachments. It''s a little bit of a hack - I''ll never really have a 100% > > test until I hit these web sites. > > By splitting the task up into separate methods in the models you will > make it much easier to test and maintain. Your individual method > tests can concentrate on exercising that method, firing unusual > conditions at it and so on, to give you confidence that each method > does everything it is supposed to. This is not a hack, this is the > best way to do it. Then, as I said, you just need minimal integration > level tests to confirm that the whole system fits together. > > >> > >> > > >> > right now I''m doing the primate approach of running the entire thing > >> > end-to-end and seeing what worked and what didn''t. > >> > > >> > Also, along with this comes another question. > >> > How do I write to logs for these not-so-Rails processes? > >> > >> Can''t you use the logger in the normal way? > >> > > I assume so, but I''m not sure where/how to introduce logging into my > modules > > which is consistent with the Rails framework. > > I didn''t really want to create two sets of files for application logging. > > I meant that you can use the Rails logger to log messages to the > standard logs. See section 2.3 of > http://guides.rubyonrails.org/debugging_rails_applications.html > for how to do this. Also the rest of that guide is well worth > digesting, and all the other guides for that matter.This is a great site and I''ll be spending some time with it. I think part of the problem I have is that my application is a "not-so-rails" in that it is: run from ''rails runner'' so I''m missing a lot of the Rails environment in many objects that I have created. I have 7 objects in /lib that are not ActiveRecord objects but use ActiveRecord objects to update data. The Rails Scaffold is largely there to provide a configuration management interface for this crontab command line process. So I don''t have the Rails logger inherently in my code. What approaches can I use to provide this logging into my command line process libraries? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 22 June 2011 15:19, Tom Allison <tom-dPKA337BxZXR7s880joybQ@public.gmane.org> wrote:> ... > So I don''t have the Rails logger inherently in my code. > What approaches can I use to provide this logging into my command line > process libraries?I have never done that. Did you try the process described in the debugging guide for using an alternative logger (section 2.1)? Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.