【问题标题】:How can I test void methods? [duplicate]如何测试 void 方法? [复制]
【发布时间】:2014-01-04 03:24:05
【问题描述】:

我有一些 void 方法,我需要测试它们,但我不确定如何去做。我只知道如何使用 Assert 测试返回某些东西的方法。 有人知道怎么做吗?你们知道这种风格的练习的一些链接吗?

【问题讨论】:

  • 如果这些方法没有做任何你可以从外部观察到的事情,那么它们在做什么有用的工作?

标签: c# unit-testing tdd


【解决方案1】:

你可以测试两件事:

  • void 方法调用后状态变化(基于状态的测试)
  • void 方法调用期间与依赖项的交互(交互测试)

第一种方法很简单(NUnit 示例):

var sut = new Sut();
sut.Excercise(foo);
Assert.That(sut.State, Is.EqualTo(expectedState)); // verify sut state

第二种方法需要mocks(起订量示例):

var dependencyMock = new Mock<IDependency>();
dependencyMock.Setup(d => d.Something(bar)); // setup interaction
var sut = new Sut(dependencyMock.Object);
sut.Excercise(foo);
dependencyMock.VerifyAll(); // verify sut interacted with dependency

嗯,你也可以测试是否抛出了适当的异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多