I have never thought that more than one assert was a bad thing.

I do it all the time:

<!-- language: c# -->

 public void ToPredicateTest()
 {
 ResultField rf = new ResultField(ResultFieldType.Measurement, "name", 100);
 Predicate<ResultField> p = (new ConditionBuilder()).LessThanConst(400)
 .Or()
 .OpenParenthesis()
 .GreaterThanConst(500)
 .And()
 .LessThanConst(1000)
 .And().Not()
 .EqualsConst(666)
 .CloseParenthesis()
 .ToPredicate();
 Assert.IsTrue(p(ResultField.FillResult(rf, 399)));
 Assert.IsTrue(p(ResultField.FillResult(rf, 567)));
 Assert.IsFalse(p(ResultField.FillResult(rf, 400)));
 Assert.IsFalse(p(ResultField.FillResult(rf, 666)));
 Assert.IsFalse(p(ResultField.FillResult(rf, 1001)));

 Predicate<ResultField> p2 = (new ConditionBuilder()).EqualsConst(true).ToPredicate();

 Assert.IsTrue(p2(new ResultField(ResultFieldType.Confirmation, "Is True", true)));
 Assert.IsFalse(p2(new ResultField(ResultFieldType.Confirmation, "Is False", false)));
 }

Here I use multiple asserts to make sure complex conditions can be turned into the expected predicate.

I am only testing one unit (the `ToPredicate` method), but I am covering everything I can think of in the test.