let’s say there is a Shape interface.

interface IShape { double Area(); }

A Rectangle class and a Triangle class implement it. Now should i write tests for:

  1. IShape interface and test both implementations in a single test file?
  2. Write tests for Rectangle and Triangle class separately, testing their implementation of Area() ?
  3. Do something else?

From what I see I am testing implementations either ways. How do you even test an interface without testing the implementation? Can someone please help clarify my doubts? Thanks!

  • Alex
    link
    fedilink
    arrow-up
    15
    ·
    edit-2
    1 year ago

    Testing interface is not about exactly interface as language’s feature. It’s about testing outer public interface (public API) of you things, looking at it as a black-box and doesn’t matter what happens inside. That’s all it means.