我了解测试厨房遵循顺序
创建节点 > 收敛说明书 > 运行测试
创建假设强外部依赖性的测试的最佳实践是什么?
一个例子是 Kafka 食谱https://supermarket.chef.io/cookbooks/kafka。您可能知道,Kafka 是一个依赖于 Zookeeper 的消息代理应用程序,Zookeeper 是一个单独的应用程序,即消息中心。
在适当分离关注点之后,Kafka 食谱不包括 Zookeeper——它可以安装在同一主机或不同的机器上。
然而,为了简单验证 Kafka 是否正常工作(即创建简单消息),您需要运行 Zookeeper 服务器。
例如,测试可以在安装后运行这三个命令
# creates a message topic
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test
# lists existing message topics
bin/kafka-list-topic.sh --zookeeper localhost:2181
# sends a message to this machine
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
使用 Chefspec,有没有办法存根这个外部服务器(上面的 localhost:2181 部分)?
谢谢!