【发布时间】:2010-05-05 21:56:33
【问题描述】:
使用 NUnit 和 Moq,我试图在进行更多重构之前围绕遗留代码进行一些测试。我需要测试一个方法是否一直循环,直到被告知停止。这是我的想法:
[TestCase]
public void KeepsCallingDoSomethingUntilShouldIKeepGoingIsFalse()
{
var dal = new Mock<IDataAccessLayer>();
var sut = new MyService(dal.Object);
int numberOfTimesToReturnTrue = 5;
dal.Setup(x => x.ShouldIKeepGoing())
.Callback(() => numberOfTimesToReturnTrue--)
.Returns(() => numberOfTimesToReturnTrue >= 0);
sut.Blah();
dal.Verify(x => x.DoSomething(), Times.Exactly(5));
}
这个测试很难理解吗?这是一种有效/干净的方法吗?有没有更好的办法?以这种方式编写测试让我感到厌烦。
【问题讨论】:
标签: c# tdd nunit moq unit-testing