代码之家  ›  专栏  ›  技术社区  ›  Dan

if语句是否可以用于在nunit测试用例中定义共享变量?

  •  1
  • Dan  · 技术社区  · 5 年前

    我有一个测试用例需要与其他测试单独的竞争ID,但仍然使用与前一个测试相同的参数。

    由于比赛可能会过期,所以我查询以获取当前的比赛ID,而不是对其进行硬编码。

    测试的目的是确保用户可以在同一时间段内参加多个比赛。第一次比赛开始后,我希望if语句将另一个值赋给competiteID。

    [TestCase("User1@abc.com", "Pass", TestName = "Contest1 Pass")]
    [TestCase("User2@abc.com", "Fail", TestName = "Contest1 Fail")]
    [TestCase("User3@abc.com", "Invalid", TestName = "Contest1 Invalid")]
    [TestCase("User1@abc.com", "Pass", TestName = "Contest2 Pass")]
    public async Task PlayContest(string email, string status)
    {
        int contestId = 1;
    
        if(TestName == "Contest2 Pass")
        {
            contestId = 2;
        }
    
        //Do work here based on assigned contestId
    }
    

    它不允许我使用testname在if语句中定义争用ID。有没有一种方法来区分testcase值,这样我就可以定义场景来为争用ID分配不同的值?

    谢谢您。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Sumit raj    5 年前
    [TestCase("User1@abc.com", "Pass", "Contest1 Pass")]
    [TestCase("User2@abc.com", "Fail",  "Contest1 Fail")]
    [TestCase("User3@abc.com", "Invalid",  "Contest1 Invalid")]
    [TestCase("User1@abc.com", "Pass",  "Contest2 Pass")]
    public async Task PlayContest(string email, string status,string testName)
    {
        int contestId = 1;
    
        if(testName == "Contest2 Pass")
        {
            contestId = 2;
        }
    
        //Do work here based on assigned contestId
    }