【发布时间】:2010-03-16 22:36:44
【问题描述】:
我偶尔听到或读到有人在单元测试中断言他们的接口。我并不是说要模拟一个接口以用于另一种类型的测试,而是专门创建一个测试来伴随该接口。
考虑一下这个极其蹩脚的即兴例子:
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);
}
}
我想这个想法是使用测试来驱动界面的设计,同时为实现者提供预期的指导,以便他们自己绘制好的测试。
这是一种常见(推荐)的做法吗?
【问题讨论】:
标签: c# unit-testing mocking interface