2009-02-10 44 views
0

我是一个java的消息队列客户端(魔豆)上工作,现在我的测试是这样的:如何测试消息队列客户端?

 
    //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设置也是一件痛苦的事情。

回答

2

我不认为编写单元测试来确定/记录外部库的行为有什么问题。如果您在代码库中包含该测试,那么您有一个事实记录,即您的队列需要支持UTF8;如果将来更改为不同的排队机制,该测试将会中断并需要重写,迫使新排队机制的实施者考虑新系统是否也可以处理UTF8。在我看来,这是一件好事。

至于在CI中设置此项,我的建议是将其归类为集成测试,并在安装了排队支持的CI计算机上运行(如果有)。