测试驱动开发的单元测试示例 - Assert是否应该相等?

时间:2014-04-09 17:24:27

标签: unit-testing nunit

在下面的单元测试示例中,测试正在尝试验证是否已创建注释。 Assert不应该是一个“Assert.AreEqual”来验证id是否匹配?

[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));

2 个答案:

答案 0 :(得分:1)

我很想知道

是什么
target.create(note)

方法呢。看起来它需要一个NotePM实例并对其进行一些操作(例如,在数据库中创建并获取ID)。

我的猜测是这个测试验证了target.create实际上改变了note.ID.因此它将note.ID的值保存在变量id中,然后调用create(note)并断言ID的值实际上已更改为某个新值。

答案 1 :(得分:0)

您想要比较音符和实际情况并验证它们是否相等?

如果是,请使用AreEqual ...

例如:

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