oose
Komm am 21.06. auf unseren oose.campus zum perspectives.festival 🥳
DeutschDeutsch

Architekturen mit Specs2 prüfen

Blog offline

Dieser Artikel stammt aus unserem Blog, der nicht mehr betreut wird. Für Neuigkeiten zu oose und interessante Inhalte zu unseren Themen, folgt uns gerne auf LinkedIn.

Unit Tests einzusetzen, um die gewünschte Paketstruktur einer Architektur einzusetzen ist ein alter, aber leider nicht so häufig eingesetzter Trick. Er lässt sich recht einfach mit JDepend in Projekten umsetzen, und ist sehr gut hier dokumentiert: http://www.clarkware.com/software/JDepend.html#junit

In Scala geht dies mit Hilfe des Specs2 Test Frameworks noch einfacher, weil es bereits einen Matcher dafür vorsieht. Dieser ist zwar zur Zeit nur für einfache Zwecke geeignet, kann aber auch leicht selbst angepasst werden.

[code]

package design

import org.specs2.mutable._
import org.specs2.specification.Analysis

class DependencySpec extends SpecificationWithJUnit with Analysis {

val design = layers( // 4 Schichten definieren
"view",
"controllers",
"backend",
"model util"
).inTargetDir("target/scala-2.10/classes")

"Program design" should {
"adhere to layer structure" in {
design must beRespected
}
}
}

[/code]

Der Test kann dann ganz einfach ausgeführt werden und berichtet über eventuelle Verstöße, bzw. in einer netten Welt ist alles grün:

 

[code]

[info] DependencySpec
[info] Program design should
[info] + adhere to layer structure
[info] Total for specification DependencySpec
[info] Finished in 868 ms
[info] 1 example, 0 failure, 0 error
[info] Passed: Total 1, Failed 0, Errors 0, Passed 1

[/code]