2014-04-09 1 views
1

단위 테스트의 아래 예제에서 테스트는 노트가 작성되었는지 확인하려고 시도하고 있습니다. Assert가 일치하는지 확인하기 위해 Assert가 "Assert.AreEqual"이되어서는 안됩니까?테스트 주도 개발을위한 단위 테스트 예제 - Assert가 AreEqual이어야합니까?

[TestMethod()] 
    public void CreateNoteTest_Pass() 
    { 
     HomeController target = new HomeController(); // TODO: Initialize to an appropriate value 
     var note = new NotePM(); 
     note.Text = "This is my test note" + DateTime.Now; 
     int id = note.NoteId; 
     note.CreatedByUserName = Membership.GetUser("danielle").UserName; 

     ActionResult actual; 
     actual = target.Create(note); 
     Assert.AreNotEqual(id, note.NoteId); 
     Assert.IsInstanceOfType(actual, typeof(RedirectToRouteResult)); 

답변

0

메모와 실제를 비교하고 동일한 지 확인 하시겠습니까?

그렇다면, AreEqual를 사용 ...

예 :

Assert.AreEqual(note, actual, "Note's are not equal."); 
1

은 내가

target.create(note) 

방법은 무엇을 알고 싶소. NotePM 인스턴스가 필요하고 DB에서 인스턴스를 생성하고 ID를 얻는 것처럼 보입니다.

내 생각에이 테스트에서는 target.create가 실제로 note.ID를 변경했음을 확인합니다. 따라서 변수 id에 note.ID의 값을 저장 한 다음 create (note)를 호출하고 ID의 값이 실제로 새로운 값으로 변경되었다고 주장합니다.

관련 문제