Tests should fail for one reason, but that doesn't always mean that there should be only one `Assert` statement.

I am happy to see multiple assert statements that form parts of the same test. e.g.

	[Test]
	public void ValueIsInRange()
	{
	 int value = GetValueToTest();

	 Assert.That(value, Is.GreaterThan(10), "value is too small");
	 Assert.That(value, Is.LessThan(100), "value is too large");
	} 

or

	[Test]
	public void ListContainsOneValue()
	{
	 var list = GetListOf(1);

	 Assert.That(list.Count, Is.EqualTo(1), "wrong count");
	 Assert.That(list[0], Is.Not.Null, "Item is null");
	} 


You *could* combine these into one assert, but that's a different thing from insisting that you *should* or *must*. It isn't always an improvement to combine them.

e.g. The first one *could* be 

 Assert.IsTrue((10 < value) && (value < 100), "Value out of range"); 

But why? I'm sure you can think of other examples where combining two or three asserts into one big boolean condition makes it harder to read, harder to alter and harder to work out why it failed. Why make it less explicit and the messages less specific for the sake of a rule?