Visual studio 2010 在VisualStudio2010的单元测试中持久化变量值

Visual studio 2010 在VisualStudio2010的单元测试中持久化变量值,visual-studio-2010,unit-testing,Visual Studio 2010,Unit Testing,我刚刚开始在vs2010中进行一些单元测试。我有一个测试方法,它设置了一个私有int变量,然后还有一些其他的测试方法试图使用这个变量。当第一个测试执行时,变量确实正确设置,但当它移动到下一个测试时,变量重置为0。如何为所有测试保留该变量的值?下面是一些示例代码 public MyClassFixture{ private Controller controller; private int id; public MyClassFixture(){ controller =

我刚刚开始在vs2010中进行一些单元测试。我有一个测试方法,它设置了一个私有int变量,然后还有一些其他的测试方法试图使用这个变量。当第一个测试执行时,变量确实正确设置,但当它移动到下一个测试时,变量重置为0。如何为所有测试保留该变量的值?下面是一些示例代码

public MyClassFixture{
  private Controller controller;
  private int id;

  public MyClassFixture(){
    controller = new Controller();
  }

  [TestMethod]
  public void Should_Generate_New_Id(){
    id = controller.GenerateNewId();
    Assert.IsTrue(id > 0);
  }

  [TestMethod]
  public void Should_Get_New_Record(){
    var record = controller.GetNewRecord(id);
    Assert.IsNotNull(record);
  }

}

为什么?单元测试的全部要点是测试必须相互独立。这正是MSTest所做的——独立运行测试,以便总是重置
id
,这很有意义。但是我想你也可以为这些目的设置初始化例程?而且,我还认为每个测试应该只测试一件事。如果是这种情况,那么如何测试生成新id、获取相关记录、更新和删除它。难道我不需要为每一个单独的测试创建跟踪id的需要吗?谢谢。我想您必须从其他测试中调用<代码> BurdEngEngEngEngIdI/<代码>,并将其更改为返回int。如果您在所有测试中都具有相同的ID,则可以考虑<代码>获取、更新、删除>代码>作为一个测试,或者模拟<代码> GANATEN WIDD < /C>强制其返回特殊ID。