아래 주어진 코드에 대한 유닛 테스트가 vs2010에서 전체 코드 적용 범위를 표시하지 않는 이유를 찾으려고합니다. 레코드를 가져 오는 데 사용하는 방법은 다음과 같습니다.유닛 테스트 코드 커버리지 문제
public Records GetTestRecords(HttpWebRequest request)
{
var Records = new Records();
try
{
if (null != request)
{
var response = (HttpWebResponse)request.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
jsonResult = sr.ReadToEnd();
}
Records = myHelper.Deserialize<Records>(jsonResult);
}
}
catch (Exception exception)
{
throw (exception);
}
return Records;
}
여기에 내가 여기 내 단위 테스트와 잘못하고 있어요 180cm 정도 나는이 단위 테스트로 전체 코드 커버리지를 얻을 수 아니에요 위의 방법
[TestMethod()]
public void GetRecordsTest()
{
string mockjsonResult = "{\"recordId\":\"8cccf2deb-4dde-450c-97cd-a6ec\",\"billingAccountId\":\"fake\",\"userid\":81233,\"Checkid\":2533004436741,\"partName\":\"redcredetest\",\"Description\":\"not yet pulling- test\",\"productId\":\"rr43556-23re\",\"created\":\"2013-04-12T21:09:54.4890986Z\",\"enddate\":null,\"autoRenewal\":true,\"changeLog\":{\"reason\":\"dummy.\",\"state\":1,\"time\":\"2013-04-12T21:09:54.48126Z\",\"extensions\":null,\"transactionId\":null}}";
var mocrequest = HttpWebRequest.Create("http://social.stackoverflowtest.com/Forums/getfile/2234");
myProvider target = new myProvider();
HttpWebRequest request = (HttpWebRequest)mocrequest;
request.Method = "GET";
request.ContentType = "application/json";
Records records = GetMockRecords();
string jsonResult = string.Empty;
var mockWebResponse = request.GetResponse();
var response = (HttpWebResponse)request.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
jsonResult = sr.ReadToEnd();
}
records = MyHelper.Deserialize<Records>(mockdjsonResult);
Assert.IsNotNull(records.ProductId);
}
내 단위 테스트입니다.
아마도 단위 테스트에서 예외가 발생하지 않기 때문에 ... –
100 %가 아닌 것을 어떻게 알 수 있습니까? Visual Studio 프로파일 러에는 실행중인 행과 실행 중이 지 않은 행이 표시되어야합니다. –
추가 논리없이 어쨌든 던져 버리려한다면 예외를 잡는 목적은 무엇입니까? – Matthew