在下面的示例中,我尝试测试注释文本是否已更改。文本(note.Text,Assert.AreEqual);是否正确?
[TestMethod()]
public void CreateNoteTest_Pass()
{
HomeController target = new HomeController(); // TODO: Initialize to an appropriate value
var note = new NotePM();
string text = "This is my test note" + DateTime.Now;
note.Text = text;
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));
Assert.AreEqual(note.Text, text);
}
发布于 2014-04-10 05:54:30
这里有一个关于这个的观点:
[TestMethod()]
public void EnsureCreateNoteChangesNoteText()
{
string text = "This is my test note" + DateTime.Now;
var note = new NotePM()
{
Text = text;
CreatedByUserName = "danielle";
};
int id = note.NoteId;
ActionResult actual;
HomeController target = new HomeController();
actual = target.Create(note);
Assert.AreNotEqual(id, note.NoteId, "note.NoteID must be assigned by the controller");
Assert.IsInstanceOfType(actual, typeof(RedirectToRouteResult));
Assert.AreNotEqual(text, note.Text, "note.Text must be changed by the controller");
}
Assert.AreNotEqual()
用于检查不等性(并且有一个字符串重载,它执行一个值comparison)Assert.xxx(Expected, Actual)
,否则失败消息被反转。HomeController
)。如果HomeController
在理想情况下依赖于asp.net Membership
,那么您应该将其注入到构造函数中的控制器中,以确保它可以被模拟。这样,您就可以确保单元测试运行,而无需准备数据库数据、设置来自单元测试运行器的连接等。https://stackoverflow.com/questions/22979382
复制