Re: Unity3d and TDD
"Avi Kessner [email protected] [testdrivendevelopment]" <[email protected]> Sat, 26 Mar 2016 20:05:27 +0300
| Newsgroups | gmane.comp.programming.test-driven-development |
|---|---|
| Message-ID | <CAGEhWpFXpwdx6tiw9gq6MwygRSVEO-PaOzj0y_wWGgC+zgV=6A@mail.gmail.com> |
That blog post is exactly the sort of thing I was looking for! Thank you so much! I hope it gets many readers. brought to you by the letters A, V, and I and the number 47 On Fri, Mar 25, 2016 at 8:34 PM, Carlo Bottiglieri [email protected] [testdrivendevelopment] < [email protected]> wrote: > > > Hello Avi, > your email spurred me to write something I wanted to write since a very > long time : how I do tdd in Unity. Luckily I was on holiday the days, so I > could put some real time into it; I hope you'll find it useful : > https://minnenratta.wordpress.com/2016/03/25/test-driving-a-unity-game/ > > Cheers, > > Carlo > > On Tue, Mar 22, 2016 at 4:19 PM Avi Kessner [email protected] > [testdrivendevelopment] <[email protected]> wrote: > >> >> >> The unique thing about Unity is all the hard references you make in the >> scene with the dragging and dropping of components. It makes everything so >> tightly coupled it scares me. I was hoping there was some good, proven, >> design patterns out there to help decouple those things. >> Hopefully, as we move forward past everything that has a strong UI >> element it will be easier to get back into proper coding habits. >> And don't get me stared on the illegible file format that scenes get >> saved as, making me feel like I'm hacking the matrix whenever there is a >> git conflict. >> >> On Mar 22, 2016 2:31 PM, "Colin Vipurs [email protected] >> [testdrivendevelopment]" <[email protected]> wrote: >> >>> >>> >>> I've only done a small amount of Unity and didn't do any TDD there (I >>> know, my bad), but I would take the same approach I would if it was a Swing >>> or Android app - move as much code as possible to be agnostic of the >>> infrastructure it is running in and test that in isolation. >>> >>> I would have a series of ports, a la ports/adapters, that allow the >>> domain logic to communicate to/from the Unity layer and have the domain >>> logic only be aware of those, then provide adapters into Unity. The >>> biggest downside I see from this is that it will undoubtedly bloat your >>> code and could _potentially_ have a performance impact depending on the >>> type of game you're making. >>> >>> On Tue, Mar 22, 2016 at 10:47 AM, 'Donaldson, John' >>> [email protected] [testdrivendevelopment] < >>> [email protected]> wrote: >>> >>>> >>>> >>>> Yes, I was just testing stuff I was delegating to. Not grasping the >>>> thorny MonoBehaviour. >>>> >>>> I did see somewhere that Model-View-Controller and Dependency Injection >>>> could let you TDD into MonoBehaviour sub-classes. >>>> >>>> Quite a good discussion here: >>>> http://forum.unity3d.com/threads/test-driven-development.35901/ >>>> >>>> J. >>>> >>>> From: [email protected] [mailto: >>>> [email protected]] >>>> Sent: 22 March 2016 10:46 >>>> To: [email protected] >>>> Subject: Re: [TDD] Unity3d and TDD >>>> >>>> >>>> >>>> >>>> >>>> I have no idea about how Unity works, but perhaps instead of writing >>>> your behaviour in a class that extends monobehavior, you could create a >>>> pure-C# object and delegate all interesting stuff to it. >>>> >>>> On Tue, Mar 22, 2016 at 10:30 AM, Avi Kessner [email protected] >>>> <mailto:[email protected]> [testdrivendevelopment] < >>>> [email protected]<mailto: >>>> [email protected]>> wrote: >>>> >>>> >>>> How do you make classes that extend monobehavior testable? Or maybe I'm >>>> just not far enough into the project where I can use composition on those >>>> bits. >>>> On Mar 22, 2016 11:04 AM, "'Donaldson, John' [email protected] >>>> <mailto:[email protected]> [testdrivendevelopment]" < >>>> [email protected]<mailto: >>>> [email protected]>> wrote: >>>> >>>> >>>> Avi - nice to see you're still out there :-) I've played around a bit >>>> with Unity and took the weak position vis-à-vis TDD. >>>> That is: the visual interface is tested by looking at it and the rest >>>> is just normal C# code with normal tests. >>>> >>>> John D. >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> [Non-text portions of this message have been removed] >>>> >>>> >>> >>> >>> -- >>> Maybe she awoke to see the roommate's boyfriend swinging from the >>> chandelier wearing a boar's head. >>> >>> Something which you, I, and everyone else would call "Tuesday", of >>> course. >>> >>> >