C# 出于测试目的,我希望会话超时

C# 出于测试目的,我希望会话超时,c#,nunit,C#,Nunit,我试图在调用数据库中的某个存储过程时获得会话超时(数据库中的返回代码为3)。我想这样做,这样我就可以对我的数据库做出成功的断言。我试着让线程休眠几分钟,但我确信有一种更实用(更快)的方法来获得会话超时错误 下面的代码是断言一个“无效会话”返回代码(即2)。我想做一些类似的事情,以获得一个3(会话超时)作为返回代码 [Test, Description("Tests Possible Return Codes for the AcquireChangeLock SP")] publ

我试图在调用数据库中的某个存储过程时获得会话超时(数据库中的返回代码为3)。我想这样做,这样我就可以对我的数据库做出成功的断言。我试着让线程休眠几分钟,但我确信有一种更实用(更快)的方法来获得会话超时错误

下面的代码是断言一个“无效会话”返回代码(即2)。我想做一些类似的事情,以获得一个3(会话超时)作为返回代码

    [Test, Description("Tests Possible Return Codes for the AcquireChangeLock SP")]
    public void test_invalidSession()
    {
        //Method to generate a valid Session Id
        int sessionId = src.run_Session_Logon_SP(dataSource, initialCataloge);

        //Generate a random no. and add it to the
        //retrieved sessionId to get an invalid sessionId
        Guid screw = Guid.NewGuid();
        byte[] _bytes = screw.ToByteArray();
        int k = ((int)_bytes[0]) | ((int)_bytes[1] << 8) | ((int)_bytes[2]);
        sessionId += k;

        //List with all the Tables and their Guids in the DB
        lst_objectName_Guid = src.getObjectName_Guid(direct);
        for (int i = 0; i < lst_objectName_Guid.Count; i += 2)
        {
            objectName = lst_objectName_Guid[i];            //Get the objectName values from the Even Indexes
            oGuid = lst_objectName_Guid[i + 1];            //Get the Guid valuees from the Odd Indexes
            final_oGuid = new Guid(oGuid);

            Console.WriteLine(objectName);

            //Method that generate Return Codes
            int code = src.run_AcquireChangeLock_SP(dataSource, initialCataloge, sessionId, objectName, final_oGuid);
            Assert.AreEqual(2, code);
            src.run_ReleaseChangeLock_SP(dataSource, initialCataloge, sessionId, objectName, final_oGuid);
        }
    }
[测试,说明(“测试AcquireChangeLock SP的可能返回代码”)]
公共无效测试_invalidSession()
{
//方法生成有效的会话Id
int sessionId=src.run\u Session\u Logon\u SP(数据源,initialCataloge);
//生成一个随机编号,并将其添加到
//检索到sessionId以获取无效的sessionId
Guid螺钉=Guid.NewGuid();
byte[]_bytes=screw.ToByteArray();
int k=((int)_字节[0])|((int)_字节[1]您可以在存储过程的开头添加一个:

-- Wait for thirty seconds...
WAITFOR DELAY '00:30'

不,我不想更改SP,因为我想对它进行其他测试。我想做的是使我的SP超时code@Reda:如果在代码中设置超时,则不必测试与SP超时相同的代码路径…我希望DB返回一个“3”代码(超时),并且为此我必须调用(任何)但是这个调用需要足够的时间来引起超时,因此DB将返回正确的代码