Spock - 近似比较
Spock - approximate comparisions
我一直在寻找 JUnit 中与以下便捷方法等效的 Spock,您可以借此进行“近似”比较。有谁知道这样的事情是否存在?
/**
* Asserts that two doubles or floats are equal to within a positive delta.
*/
assertEquals(double expected, double actual, double delta)
我不知道是否有 Spock 等价物,但很容易编写自己的
class Foo extends Specification {
private boolean compareApproximately(Number expected, Number actual, Number delta) {
Math.abs(expected - actual) <= delta
}
def "approximate test"() {
expect:
compareApproximately(4, 4.5, 1)
!compareApproximately(4, 4.5, 0.1)
}
}
实际上,您可能希望通过在特征、Specification
的子 class 或实用程序中的静态方法中定义 compareApproximately
来跨规范重用它class.
中描述了内置函数
when:
def x = computeValue()
then:
expect x, closeTo(42, 0.01)
检查specs。
我一直在寻找 JUnit 中与以下便捷方法等效的 Spock,您可以借此进行“近似”比较。有谁知道这样的事情是否存在?
/**
* Asserts that two doubles or floats are equal to within a positive delta.
*/
assertEquals(double expected, double actual, double delta)
我不知道是否有 Spock 等价物,但很容易编写自己的
class Foo extends Specification {
private boolean compareApproximately(Number expected, Number actual, Number delta) {
Math.abs(expected - actual) <= delta
}
def "approximate test"() {
expect:
compareApproximately(4, 4.5, 1)
!compareApproximately(4, 4.5, 0.1)
}
}
实际上,您可能希望通过在特征、Specification
的子 class 或实用程序中的静态方法中定义 compareApproximately
来跨规范重用它class.
when:
def x = computeValue()
then:
expect x, closeTo(42, 0.01)
检查specs。