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.
>>>
>>> 
>