Я иногда слышал или читал о людях, утверждающих их интерфейсы в unit test. Я не имею в виду насмешку над интерфейсом для использования в тесте другого типа, но специально создавая тест для сопровождения интерфейса.
Рассмотрим этот ультра-хромой и пример с манжетой:
public interface IDoSomething
{
string DoSomething();
}
и тест:
[TestFixture]
public class IDoSomethingTests
{
[Test]
public void DoSomething_Should_Return_Value()
{
var mock = new Mock<IDoSomething>();
var actualValue = mock.Expect(m => m.DoSomething()).Returns("value");
mock.Object.DoSomething();
mock.Verify(m => DoSomething());
Assert.AreEqual("value", actualValue);
}
}
Я предполагаю, что идея состоит в том, чтобы использовать тест, чтобы управлять дизайном интерфейса, а также давать указания разработчикам о том, что ожидается, чтобы они могли провести собственные собственные тесты.
Это обычная (рекомендуемая) практика?