8

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

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

我知道在一个测试中对多个断言有不同的看法,但我选择在我的情况下使用它们,并且这个讨论已经在 其他地方进行了讨论。

4

1 回答 1

7

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

和实现的IAssert接口包括每个成员的可选参数:Rubberduck.AssertClassRubberduck.PermissiveAssertClassmessage

显示“AssertClass”成员的对象浏览器

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

Assert.AreEqual expected, actual, "oops, didn't expect this"
Assert.IsTrue result, "truth is an illusion"

只有在断言失败时,Test Explorer 工具窗口才会在 Message 列下显示定义消息:

RD 测试资源管理器

于 2017-04-06T19:34:18.127 回答