我正在研究一个java消息队列客户端(beanstalk),现在我的测试看起来像这样:
//make sure our getJob can handle utf8 characters @Test public void testUTF8() { bean = new Beanstalk(); Job job = new Job(); bean.putJob("€"); job = bean.getJob(); assertEquals("€", job.msg); bean.close(); }
我已经读过你不应该测试实际的队列本身因为它不是我写的代码而是我写了客户端代码 - 有没有更好的方法来编写它?我真的需要测试来保证自己,但除了风格之外,设置我的CI也很痛苦。
答案 0 :(得分:2)
我认为编写单元测试以确定/记录外部库的行为没有任何问题。如果在代码库中包含该测试,那么您将记录您的队列需要支持UTF8的事实;如果将来更改为不同的排队机制,该测试将中断并需要重写,迫使新排队机制的实施者考虑新系统是否也能处理UTF8。在我看来,这是一件好事。
至于在CI中进行设置,我建议您将其归类为集成测试,并在安装了排队支持的CI计算机上运行(如果有的话)。