我使用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的值?
答案 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类,这有点奇怪。