You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[3.12 Architecture Unit Tests](#312-architecture-unit-tests)
56
+
55
57
[4. Technology](#4-technology)
56
58
57
59
[5. How to Run](#5-how-to-run)
@@ -941,6 +943,19 @@ All Architectural Decisions (AD) are documented in the [Architecture Decision Lo
941
943
942
944
More information about documenting architecture-related decisions in this way : [https://github.com/joelparkerhenderson/architecture_decision_record](https://github.com/joelparkerhenderson/architecture_decision_record)
943
945
946
+
### 3.12 Architecture Unit Tests
947
+
948
+
In some cases it is not possible to enforce the application architecture, design or established conventions using compiler (compile-time). For this reason, code implementations can diverge from the original design and architecture. We want to minimize this behavior, not only by code review.</br>
949
+
950
+
To do this, unit tests of system architecture, design, major conventions and assumptions have been written. In .NET there is special library for this task: [NetArchTest](https://github.com/BenMorris/NetArchTest). This library has been written based on the very popular JAVA architecture unit tests library - [ArchUnit](https://www.archunit.org/).</br>
951
+
952
+
Using this kind of tests we can test proper layering of our application, dependencies, encapsulation, immutability, DDD correct implementation, naming, conventions and so on - everything what we need to test. Example:</br>
953
+
954
+

955
+
956
+
More information about architecture unit tests here: [https://blogs.oracle.com/javamagazine/unit-test-your-architecture-with-archunit](https://blogs.oracle.com/javamagazine/unit-test-your-architecture-with-archunit)
957
+
958
+
944
959
## 4. Technology
945
960
946
961
List of technologies, frameworks and libraries used for implementation:
@@ -962,6 +977,7 @@ List of technologies, frameworks and libraries used for implementation:
-[Visual Paradigm Community Edition](https://www.visual-paradigm.com/download/community.jsp) (CASE tool for modeling and documentation)
980
+
-[NetArchTest](https://github.com/BenMorris/NetArchTest) (Architecture Unit Tests library)
965
981
966
982
## 5. How to Run
967
983
@@ -1103,6 +1119,7 @@ The project is under [MIT license](https://opensource.org/licenses/MIT).
1103
1119
1104
1120
### Testing
1105
1121
-["The Art of Unit Testing: with examples in C#"](https://www.amazon.com/Art-Unit-Testing-examples/dp/1617290890) book, Roy Osherove
1122
+
-["Unit Test Your Architecture with ArchUnit"](https://blogs.oracle.com/javamagazine/unit-test-your-architecture-with-archunit) article, Jonas Havers
1106
1123
1107
1124
### UML
1108
1125
-["UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)"](https://www.amazon.com/UML-Distilled-Standard-Modeling-Language/dp/0321193687) book, Martin Fowler
0 commit comments