Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

8
  • In your definition I assume what I mean is to write more behaviour tests (?) than unit test. Unit test for me is a test which tests a single class with all dependencies mocked. There are cases where unit tests are most useful. That is e.g. when I write a complex algorithm. Then I have many examples with expected output of the algorithm. I want test this on unit level because it is actually faster than the behaviour test. I do not see the value of test a class on unit level which has only a hand full a paths through the class which can easily be tested by an behaviour test. Commented Jan 13, 2014 at 9:58
  • 15
    I personally think acceptance tests are the most important, behaviour tests are important when testing things like communication, reliability and error cases and unit tests are important when testing small complex features (algorithms would be a good example of this) Commented Jan 13, 2014 at 10:02
  • I am not so firm with your terminology. We program a programming suite. In there I am responsible for the graphical editor. My tests testing the editor with mocked services from the rest of the suite and with mocked UI. What kind of test would that be? Commented Jan 13, 2014 at 10:11
  • 2
    Depends on what you're testing - are you testing business features (acceptance tests)? Are you testing integration (integration tests)? Are you testing what happens when you click a button (behaviour tests)? Are you testing algorithms (unit tests)? Commented Jan 13, 2014 at 15:32
  • 4
    "I don't like to focus on the textbook approaches - rather, focus on what gives your tests value" Oh, so true! First question to always ask is "what problem do I solve by doing this?". And different project may have different problem to solve! Commented Mar 13, 2014 at 15:05