English 中文(简体)
每一种检验方法是否至少有一种说法?
原标题:Should every test method have at least one assert?
  • 时间:2009-11-04 07:50:52
  •  标签:

当我测试一种真空方法时,没有任何东西可以断言。 例如,一种制造方法。 我知道,在测试方法中,如果存在(在制造方法中)将显示的错误,则我可以称之为“FindSomething”等其他方法,但无论如何。 因此,在不提出指控的情况下,采用每一种方法或一米罚款,是一种良好做法?

最佳回答

Not necessarily an Assert

但是,你的测试守则至少应当做到其中之一:

  • assert that some property/result has/hasn t been set to particular value
  • verify that certain methods have been called/avoided
  • check that exceptions behave (fire or not) as expected

因此,它带有你应加以检查的价值观、行动和错误。 有时,只有其中之一,有时你可以不组合地这样做。

问题回答

丧葬方法往往改变病情。 在这种情况下,你的测试方法应当主张,预期状态在发出呼吁之后就存在。 I.e. 您需要就相关成员的状况发表意见。

不能附带效果的阴道法也可使用 mo物体进行测试。 在此情况下,你检验,这种方法使 expected子的预期需求达到极限。

说这种功能像方法一样,应当成为海事组织的首选,因为这种方法更容易解释和更容易测试,但这只是我的意见。

因此,这种方法的目的是什么?

回答这一问题有助于找到需要断言的内容。 如果 an子实际上为nothing,你就应当能够从你的法典中删除这一方法,而不会产生影响。

由于你的发展环境或项目的限制,执行检验准则以涵盖这一说法是另一个可能或可能不容易或相关的问题。

确实,如果你只需要测试该方法的运行情况......在尝试和捕获中加以总结,如果它因某种原因失败(而且你可以不说什么)——在捕获量中主张(false),或者如果你期望有例外——使用预期的外观......

在每次测试中,你应肯定至少坚持一个事实。 简而言之,由于你的单位测试框架将计算各种说法的数量,而衡量标准 测试/声明数目<> /em>能够给测试套带来良好的第一印象。

如果看上去看看不到什么东西可以断言: 我知道的所有单位测试框架。 Assert.Throws/Assert.Does NotThrow methods for actual that purpose.

Of Course there is something like Assert.Throws/Assert.DoesNotThrow in MSTest there are Assert.Fail() and AssertFailedException()

如果你的测试中断,确保它失败。 可以通过以下方面来见证:

  • assert
  • exception thrown
  • mock object complaining it didn t get called correctly

也许有一些例外,但我想不到。 贸易和发展会议的一个重要方面是:

先撰写失败测试。

如果你这样做,你会再次保证这样做。

一些人声称,每一次检验都应当有,只有一次,才能断言......但这是一个不同的问题。





相关问题