|
回复 2# hotivy
非常感谢你花时间回复我,目前我们是准备放弃UT。主要是因为我们无法通过UT快速发现有效错误,写了1个月的200条case还不如手工发现的快。
写出一个UT倒是快,可是不是有效的。如何写出有效的UT case呢?话说到简单。比如如下完整代码
public bool ParseHttpResponse(byte[] buffer,int offset,ref int count, out IHttpResponse httpResponse) {
if (_HttpRequest==null)
{ _HttpResponse=new HttpResponse();
}
_Buffer=buffer;
_Reader.Assign(buffer,offset,count);
while(_ParserMethod())
{
}
count=_Reader.Index;
if(_Finished)
{
httpResponse=_HttpResponse;
httpResponse.Body.Seek(-,System.IO.SeekOrigin.Begin);
_HttpResponse=null;
}
return _Finished;
}
这里开发人员笔误把_HttpResponse==null写成了_HttpRequest==null,只有在连续2次调用此function后才会出现问题,因为IHttpResponse不是期望的。
可是,写UT就能cover到这个bug吗?我怎么知道该返回一个旧的,而不是新的IHttpResponse?说不定开发人员自己写UT时也没留意,就放过这个bug了?? |
|