【发布时间】:2016-05-09 06:48:17
【问题描述】:
我了解测试厨房遵循顺序
创建节点 > 收敛说明书 > 运行测试
创建一个假设强外部依赖的测试的最佳实践是什么?
一个例子是 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 部分)?
谢谢!
【问题讨论】:
标签: testing chef-infra apache-kafka apache-zookeeper chefspec