Unit testing 测试驱动开发的单元测试示例-断言是否应该相等?

Unit testing 测试驱动开发的单元测试示例-断言是否应该相等?,unit-testing,nunit,Unit Testing,Nunit,在下面的单元测试示例中,测试试图验证是否创建了注释。断言不应该是“Assert.AreEqual”来验证id是否匹配吗 [TestMethod()] public void CreateNoteTest_Pass() { HomeController target = new HomeController(); // TODO: Initialize to an appropriate value var note = new NotePM();

在下面的单元测试示例中,测试试图验证是否创建了注释。断言不应该是“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));

是否要比较注释和实际值,并验证它们是否相等

如果是这样,请使用相等的

例:


我很想知道这是怎么回事

target.create(note)
方法确实如此。它看起来像是接受了一个NotePM实例并对其进行了一些处理(例如,在DB中创建它并获取ID)

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

target.create(note)