我正在尝试确定哪两个测试结构最好,以确定应如何编写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被更改以外的属性。
答案 0 :(得分:0)
SaveFoo
应更新现有对象,因为这是已保存到数据库的对象。