Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Nunit和全局变量的测试用例_C#_Asp.net_Nunit_Testcase - Fatal编程技术网

C# 使用Nunit和全局变量的测试用例

C# 使用Nunit和全局变量的测试用例,c#,asp.net,nunit,testcase,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.Get

我使用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的值?

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

[Test]
public void TestUser()
{
    MyClass myClass = new MyClass();
    MyClass.userid = "test value";
    Assert.IsTrue(IsEntryExist())
}
其次,最好将此代码移动到包含方法的其他类

public bool IsEntryExist(int id)

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

感谢您的快速响应。如果我将变量定义为private,那么如何为该变量赋值。@NamanGoyal如果它是private,则不能直接设置它。您必须在其周围提供某种受保护或公开的setter。如果将其设置为受保护,则可以在派生测试类中设置它。