在执行测试之后,我们通常执行Assert.True(someCondition)
。如果不需要条件检查,只要完成测试就足够了,我用Assert.Pass()
结束测试。
我用的是FluentAssertions
,一直在做true.Should().BeTrue();
。这开始让人感觉更像是一个黑客,而不是正确的图书馆精神。
是否有一些其他流利的语法,我可以用它来完成.Pass()
意图?
-更新:根据反馈,当主要使用FluentAssertions
时,从XUnit
或NUnit
使用.Pass()
没有问题。
在Fluent断言中没有任何等价的Assert.Pass()
。true.Should().BeTrue()
是一个重言式语句,比Assert.Pass()
弱。所以在这两者之间,我会继续使用Assert.Pass()
。
另一种在代码中显式声明运行到完成是成功的方法是说不应该发生异常。
// Arrange
var subject = ...
// Act
var act = () => subject.CalculateTaxes();
// Assert
act.Should().NotThrow<Exception>();
有关如何断言异常的更多示例,请参见https://fluentassertions.com/exceptions/。
第三种方法是简单地放弃显式断言的要求,例如可以在方法名称中捕获,例如calculating_taxes_does_not_throw
。