Skip to content

DanielParra159/HangmanGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Code coverage Coverage Maintainability Rating Quality Gate Status Technical Debt

HangmanGame

This is just a Unity project for learning purposes, applying TDD and DDD principles, following the architecture proposed by Robert C. Martin in his book Clean Architecture.

Clean Architecture

In this architecture the components from an inner layer cannot speak with components in an outer layer, helping to keep our domain testable and decoupled from everything. For this communication the inversion of control principle is used, the outer layers must subscribe to the inner layers if they want to know their results, for this I have used an improvised EventDispatcher.

For the comunication with the view I have used a reactive MVVM pattern, using UniRx to do it reactive. Thanks to this pattern, we can maintain our view logic decoupled of Unity by facilitating testing with unit tests.

For the creation of End to end (E2E) tests, since Unity does not support cucumber or similar, I have improvised some helper functions for this purpose.

For the server I have used this hangman api.

CI

I have created a workflow to run the tests during pull request step and other to build and archive the project when merges to master. To do that I have used Unity actions that uses Unity3D docker images from GabLeRoux.

Static analyzers

I have used Sonar cloud as static analyzer but also Unity code coverage package to generate reports, like the next image, the difference between the two is that the second is taking into account the play mode tests. Code coverage

Next steps

  • Improve graphics.
  • Execute sonar in every pull request and merge to master.

Workflows

Unity actions: used to run all the tests during pull request and build the project when push to master.

Labeler: used to assign labels during pull requests depending on the modified files.

Auto assign action: used to auto-assign the author of the pull request to this.

Check critical files: used to check critical files/folders and add a commentary in the pull request.

Unity

Version 2019.3.9f1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published