Re: Testing Views - iOS
"Luther Baker [email protected] [testdrivendevelopment]" <[email protected]> Sat, 31 May 2014 23:39:14 -0500
| Newsgroups | gmane.comp.programming.test-driven-development |
|---|---|
| Message-ID | <CAL5Mv1=axd4eJQ66+fT8gbwhMb4CBqNCB-3e=FmwbcGoZqkp1Q@mail.gmail.com> |
This sounds interesting. I didn't think a unit test (ala XCTest) for a specific view would actually fire up the view - but is that what you're thinking I should dig into - and then, assigning values to the child "tag" properties and then proceed to simulate some interaction? Tap a button to see some text get disabled? Hmmmm ... I'm really curious now. Thanks, -Luther On Sat, May 31, 2014 at 11:05 PM, Amir Kolsky [email protected] [testdrivendevelopment] <[email protected]> wrote: > > > You do not need to know pixels. If you know the IDs you can access the > widgets. This is still a unit test. > > Sent from my Android phone using TouchDown (www.nitrodesk.com) > > > -----Original Message----- > *From:* Luther Baker [email protected] [testdrivendevelopment] [ > [email protected]] > *Received:* Saturday, 31 May 2014, 7:51AM > *To:* [email protected] [ > [email protected]] > *Subject:* Re: [TDD] Testing Views - iOS > > > > Screenscrape? In iOS? > > I generally don't position things explicitly via pixels anymore - not with > Autolayout so would be hard to tell exactly where something was to show up > if I were writing the test first. > > I can write a UAT test that basically gets to that screen and can expect > certain behavior -- but was looking for help regarding unit tests. > > Thanks, > -Luther > > > > On Fri, May 30, 2014 at 10:11 AM, Amir Kolsky > [email protected] [testdrivendevelopment] < > [email protected]> wrote: > >> >> >> Can’t you just screen scrape the views, given that they are supposed to >> drive the screen? >> >> >> >> *From:* [email protected] [mailto: >> [email protected]] >> *Sent:* Friday, May 30, 2014 6:23 PM >> *To:* [email protected] >> *Subject:* [TDD] Testing Views - iOS >> >> >> >> >> >> I've essentially broken my GUI logic out into a rough MVP pattern and >> while I find testing the Models and Presenters straightforward, I haven't >> come up with a repeatable process to test drive the code in the Views. >> >> >> >> Granted, my views are dumb and have no real business logic - but for >> instance, if something is disabled, I could test that certain fields are >> set to 'readonly', or greyed out, etc. >> >> >> >> I generally use mocks and inject dependencies everywhere else in the app >> - but that isn't as feasible in the views. Buttons, toggles and segemented >> controls aren't something the parent view can just swap out, replace and >> layout correctly. Injection doesn't feel right and so, because Views are so >> 'self contained' - I find myself newing child components up inside of their >> parent views and as such, I'm not sure how to TDD them without exposing >> their internals somehow. >> >> >> >> Would great appreciate some suggestions. >> >> >> >> Thanks, >> >> -Luther >> >> >> >> > >