What is SUT and where did it come from?

Acaz Souza picture Acaz Souza · Sep 6, 2011 · Viewed 33.6k times · Source

I see many people talking about the term SUT, but do not understand why they use that term.

SUT is what you want to test?

Where does this term come from and what does it mean?

For example in this test, what is my SUT?

[TestMethod]
public void UsersAction_should_return_IndexAction()
{
    const long id = 1;

    UsersViewModel viewModel = new UsersViewModel()
    {
        SelectedUsers = new long[] { 1, 2, 3, 4 }
    };

    ActionResult result = _controller.Users(id, viewModel);

    result.AssertActionRedirect().ToAction("Index");
}

Answer

Darren Lewis picture Darren Lewis · Sep 6, 2011

The System Under Test (SUT) from a Unit Testing perspective represents all of the actors (i.e one or more classes) in a test that are not mocks or stubs. In your example that would be the controller.