8

I am reading about Alistair Cockburn's Hexagonal Architecture with interest.

One claim he makes is:

Finally, the automated function regression tests detect any violation of the promise to keep business logic out of the presentation layer. The organization can detect, and then correct, the logic leak.

I do not understand this point. Is he saying that because the test is headless, then calls to a UI layer will throw exceptions? That doesn't seem to be a very sound test!

1 Answer 1

14

His point is that having a suite of automated tests exercising all the business logic without a UI will make it clear if you have any business logic in the UI.

To make such a test suite, you essentially have to create a very thin testing-only "non-user" interface to supply data and check results. If any of your business logic is actually in the UI, you'll find yourself replicating that logic in this testing interface, and realize your mistake.

4
  • I kind of see. But what happens if the developer augments the published API by introducing business logic in the presentation tier? That would not get picked up, correct? Oct 10, 2012 at 20:32
  • 1
    Nothing will protect from a rogue developer adding things where they don't belong without tests.
    – Don Roby
    Oct 10, 2012 at 21:28
  • So the pattern protects against someone who is stupid enough to move business logic to the presentation tier, but not against someone who is so stupid that they would introduce new business API's in their presentation code. Oct 11, 2012 at 4:20
  • "you'll find yourself replicating that logic in this testing interface" or you might write your tests to use the UI logic, right? Mar 14, 2015 at 0:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.