2013-12-16 63 views
6

我有一些无效的方法,我需要测试它们,但我不知道如何去做。我只知道如何使用Assert来测试返回某些东西的方法。有人知道如何做到这一点?你们知道这种风格与练习的一些联系吗?如何测试void方法?

+0

如果这些方法没有做任何你能从外部观察到的事情,他们在做什么有用的工作? –

回答

10

您可以测试两两件事:无效的方法调用(基于状态的测试)

  • 互动与无效的方法调用(交互测试)
  • 第一种方法中的依赖后

    • 状态变化很简单(NUnit样品):

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

      第二种方法要求小号mocks(MOQ样品):

      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 
      

      好了,你也可以测试是否合适引发异常。