Theory vs Test Nunit
a theory is an elegant alternative to parameterized test, see my question here at stackoverflow
A Theory is similar to a parameterized test, with the additional ability to define assumptions under which it must pass, which are checked before actually performing the test and its assertions.
Basically, it could be used if you have a lot of data points and want to check a certain behaviour that should be guaranteed - but not always, only under certain preconditions.