gpt4 book ai didi

scala - 我是否遵循 BDD 规范?

转载 作者:行者123 更新时间:2023-12-02 00:53:51 26 4
gpt4 key购买 nike

我正在尝试编写我的第一次基于 BDD 风格的生命测试,如下所示:

final class SapRsSpec extends FeatureSpec
with Matchers
with GivenWhenThen {

feature("KAFKA") {
scenario("Technical user starts SAP RS") {
Given("Consumer client gets started")
When("KAFKA server is not active")
Then("message `Can not connect ot KAFKA` appears.")

}


}

}

我试图从技术用户的角度来写。
这是正确的吗?

最佳答案

When 子句应该理想地描述 Action 而不是状态,所以这样写

When("consumer client gets started")

而不是 When("Kafka server is not active") 更惯用。将 Given-When-Then 视为 Hoare triple可能会有帮助,我们首先在操作之前指定状态 (Given),然后是改变状态的操作 (When),最后是操作之后的预期状态 ( 然后).

featurescenario 子句理想情况下即使在省略 Given-When-Then 主体时也应该有意义。仅仅说明 feature("Kafka") 似乎过于宽泛。指定的特性实际上是 Kafka 和复制服务器之间的关系,而不仅仅是 Kafka 本身。

假设指定的特性是复制服务器在两种情况下分发给 Kafka,当 Kafka 启动时和当它关闭时,那么我们可以将规范细化如下:

  feature("Replication server's distribution to Kafka") {
scenario("Replication server's distribution when Kafka is DOWN") {
Given("Kafka server is NOT active")
When("consumer client gets started")
Then("print message 'Failed to connect to Kafka'")
}

scenario("Replication server's distribution when Kafka is UP") {
Given("Kafka server is active")
When("consumer client gets started")
Then("print message 'Successfully connected to Kafka'")
}
}

关于scala - 我是否遵循 BDD 规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com