使用 Rubberduck 单元测试,我如何找出多个断言中的哪一个失败了?
Using Rubberduck unit tests, how can I find out which one of multiple asserts failed?
我正在使用 Rubberduck 对我的 VBA 实现进行单元测试。在一个 TestMethod 中使用多个相同类型的断言(例如 Assert.IsTrue
)时,据我所知,测试结果并没有告诉我哪一个失败了。
有没有办法找出哪个 Assert 失败了,或者这是否在 Rubberduck 未来的路线图上?当然我可以添加自己的信息,例如通过在每个 Assert 之前使用 Debug.Print
,但这会导致很多额外的代码。
我知道对于一个测试中的多个断言有不同的看法,但我选择在我的情况下使用它们并且这个讨论已经涵盖 elsewhere。
Disclaimer: I'm heavily involved in Rubberduck's development.
Rubberduck.AssertClass
和 Rubberduck.PermissiveAssertClass
实现的 IAssert
接口,包括每个成员的可选 message
参数:
只需为每个断言包含一条不同的描述性消息:
Assert.AreEqual expected, actual, "oops, didn't expect this"
Assert.IsTrue result, "truth is an illusion"
Test Explorer 工具窗口将在 Message 列下显示自定义消息,仅当断言失败时:
我正在使用 Rubberduck 对我的 VBA 实现进行单元测试。在一个 TestMethod 中使用多个相同类型的断言(例如 Assert.IsTrue
)时,据我所知,测试结果并没有告诉我哪一个失败了。
有没有办法找出哪个 Assert 失败了,或者这是否在 Rubberduck 未来的路线图上?当然我可以添加自己的信息,例如通过在每个 Assert 之前使用 Debug.Print
,但这会导致很多额外的代码。
我知道对于一个测试中的多个断言有不同的看法,但我选择在我的情况下使用它们并且这个讨论已经涵盖 elsewhere。
Disclaimer: I'm heavily involved in Rubberduck's development.
Rubberduck.AssertClass
和 Rubberduck.PermissiveAssertClass
实现的 IAssert
接口,包括每个成员的可选 message
参数:
只需为每个断言包含一条不同的描述性消息:
Assert.AreEqual expected, actual, "oops, didn't expect this"
Assert.IsTrue result, "truth is an illusion"
Test Explorer 工具窗口将在 Message 列下显示自定义消息,仅当断言失败时: