¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: [TDD] Unity3d and TDD


 

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 zodiaczx6@... [testdrivendevelopment]" <testdrivendevelopment@...> 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' john.m.donaldson@... [testdrivendevelopment] <testdrivendevelopment@...> 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:

J.

From: testdrivendevelopment@... [mailto:testdrivendevelopment@...]
Sent: 22 March 2016 10:46
To: testdrivendevelopment@...
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 akessner@...akessner@...> [testdrivendevelopment] <testdrivendevelopment@...testdrivendevelopment@...>> 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' john.m.donaldson@...john.m.donaldson@...> [testdrivendevelopment]" <testdrivendevelopment@...testdrivendevelopment@...>> 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.

Join [email protected] to automatically receive all group messages.