0

我正在尝试确定两个测试中哪一个的结构最好,以确定应该如何编写 Repository.SaveFoo(x)。

//version 1
[TestMethod]
public void Saving_a_new_Foo_results_in_new_id()
{
    var x = new Foo { Id = 0 };
    x = Repository.SaveFoo(x); // Saves x and returns new Foo which is a copy of x but with an updated Id
    Assert.AreNotEqual(0, x.Id);
}

//version 2
[TestMethod]
public void Saving_a_new_Foo_results_in_new_id()
{
    var x = new Foo { Id = 0 };
    Repository.SaveFoo(x); // Saves x and updates x.Id
    Assert.AreNotEqual(0, x.Id);
}

我想这个问题可以改写为,SaveFoo 方法应该返回一个新对象还是简单地更新传递给它的对象?

注意,我已经简化了代码;保存过程会导致 ID 以外的属性也被更改。

4

1 回答 1

0

SaveFoo应该更新现有对象,因为那是已保存到数据库中的对象。

于 2013-04-30T13:35:31.063 回答