假设有一个函数可以确定按钮是否应该可见。
fun isButtonVisible(fitlers: List<Filters>, results: List<Shop>, isLoading: Boolean) {
return fitlers.isNotEmpty() && results.isEmpty() && !isLoading
}
现在我想使用 PBT 来测试这个功能,比如:
"the button should be visible if filters is not empty and results is empty and is not loading" {
forAll { filters: List<Filters>, results: List<Shop>, isLoading: Boolean ->
val actual = isButtonVisible(filters, results, isLoading)
// Here reimplement the logic
val expected = filters.isNotEmpty() && results.isEmpty() && !isLoading
assertThat(actual).isEqual(expected)
}
}
看来我只是在测试中再次重新实现了逻辑,这是正确的吗?如果没有,如果逻辑只是几个标志的简单组合,我怎么能想出另一个属性?