使用具有全局变量的Nunit的测试用例

时间:2013-09-27 07:53:10

标签: c# asp.net nunit testcase

我使用c#创建了一个asp.net 4.0 Web应用程序。我有一个类,我使用全局变量。我在Page_Load方法中设置了此变量的值,并在其他函数中访问。

现在我想创建该函数的测试用例。我想知道如何使用nunit在测试用例中调用该函数之前设置该全局变量的值。

这是我的代码:

public string userId = "";   
protected void Page_Load(object sender, EventArgs e)  
{  
    userId = Membership.GetUser().ProviderUserKey.ToString();

//some code here

}

public bool IsEntryExist()  
{   
   string query="SELECT COUNT(*) FROM table WHERE user_id = '"+userId+"'";    

   bool Exist = Convert.ToBoolean(db.SelectScaler(query));   
}

这里我在nunit中创建了一个测试用例。

[TestFixture]
public class Testing
{
   [Test]
   public void TestUser()
   {
      Assert.IsTrue(IsEntryExist())
   }
}

如何设置UserId的值?

2 个答案:

答案 0 :(得分:1)

[Test]
public void TestUser()
{
    MyClass myClass = new MyClass();
    MyClass.userid = "test value";
    Assert.IsTrue(IsEntryExist())
}

答案 1 :(得分:0)

首先,您没有使用全局变量。您正在使用成员变量。

其次,将此代码移动到包含方法

的其他类可能更好
public bool IsEntryExist(int id)

比测试它更容易。而且你不需要在单元测试中实例化ASP.NET Page类,这有点奇怪。