使用Rubberduck单元测试,如何找出多个断言中的哪一个失败?

Jör*_*yer 6 vba unit-testing assertions vbe rubberduck

我正在使用Rubberduck对我的VBA实现进行单元测试.当Assert.IsTrue在一个TestMethod中使用相同类型的多个Assert(例如)时,测试结果并没有告诉我哪个失败,据我所见.

有没有办法找出哪个Assert失败或者这是在Rubberduck未来路线图上?当然我可以添加自己的信息,例如Debug.Print在每个Assert之前使用,但这会导致很多额外的代码.

我知道在一次测试中对于多个Assert有不同的看法,但我选择在我的情况下使用它们,这个讨论已经在其他地方讨论过了 .

Mat*_*don 5

免责声明:我积极参与Rubberduck的开发.

IAssert实现Rubberduck.AssertClassRubberduck.PermissiveAssertClass实现的接口包含message每个成员的可选参数:

对象浏览器显示'AssertClass'的成员

只需为每个断言包含不同的描述性消息:

Assert.AreEqual expected, actual, "oops, didn't expect this"
Assert.IsTrue result, "truth is an illusion"
Run Code Online (Sandbox Code Playgroud)

测试资源管理器工具窗口将显示自定义消息的下消息栏,仅当断言失败:

RD Test Explorer

  • @JörgBrenninkmeyer的OMG这些镜头来自1.4!wiki肯定需要进行一些改进......特别是随着测试框架下一次发布的更改(我说*嘲笑*?)... (4认同)