Thursday, October 30, 2008

Unit testing #2. NUnit constraint-based Asserts

Починаючи з версії 2.4 в NUnit реалізовано новий стиль assert'ів. Ця модель використовує один метод Assert.That(args) для всіх тверджень. Логіка виконання кожного твердження перенесена в другий параметр. Ось декілька прикладів:
Assert.That(10.0/3.0, Is.EqualTo(3.33).Within(0.01f));
Assert.That(2*2, Is.Not.EqualTo(5));
Assert.That(new object(), Is.Not.Null);
Assert.That(string.Empty, Is.Empty);
Assert.That("abc", Has.Length(3));
Assert.That(new string[] {"a", "b", "c"}, Is.All.Not.Null);
Також можна комбінувати constraints.
Assert.That(3, Is.LessThan( 5 ) | Is.GreaterThan( 10 ));
Assert.That("s", !Is.Null));
Для того щоб працювати з новим стилем потрібно використати:
using NUnit.Framework.SyntaxHelpers;
Цей стиль мені подобається більше ніж класичний.

Детальніше - на сторінці Constraint-Based Assert Model документації NUnit .

No comments: