【问题标题】:which approach is good to for assert哪种方法适合断言
【发布时间】:2018-05-19 18:04:27
【问题描述】:

第一种方法:也使用 try-catch 块以及 Asset.Fail。

我正在使用这种技术在执行开始之前和之后在记录器中打印一些消息

[TestMethod]
public void abcButton()
    {
want to print messages so many Logger signs are here

                Utility.Logger.Write("** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is started  *****");
    Utility.Logger.Write("***********************");
    try
    {
        Assert.IsTrue(LoginPage.CheckBtn());
        Utility.Logger.Write("********************");
        Utility.Logger.Write("***** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is Passed  *****");
        Utility.Logger.Write("******************************************************");
    }
    catch
    {
        Utility.Logger.Write("*************************");
        Utility.Logger.Write("***** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is Failed  *****");
        Utility.Logger.Write("*********************");
        Assert.Fail();
    }

}

第二种方法:使用 if-else 条件,涉及一个额外的 var 我只是想看看是否有一个简短的方法可以从专家那里得到

[TestMethod]

public void abcButton()
{

    Utility.Logger.Write("** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is started  *****");
    Utility.Logger.Write("***********************");
    var val = LoginPage.CheckBtn() ;
    if(val)){
        Assert.IsTrue(val);
        Utility.Logger.Write("********************");
        Utility.Logger.Write("***** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is Passed  *****");
        Utility.Logger.Write("**************************************");
    }
    else
    {
        Utility.Logger.Write("*************************");
        Utility.Logger.Write("***** " + string.Format(" {0} - {1}", GetType().Name, MethodName) + " Test Case is Failed  *****");
        Utility.Logger.Write("*********************");
    }
}

如果我们可以用更少的代码处理这种情况,请告诉我

【问题讨论】:

    标签: c# selenium selenium-webdriver mstest assert


    【解决方案1】:

    我会这样写测试:

    [TestMethod]
    public void abcButtonTest()
    {
        Assert.IsTrue(LoginPage.CheckBtn(), "Checking return value");
    }
    

    基本示例:

    [TestMethod]
    public void TestMethod1()
    {
        Assert.IsTrue(false, "Assert failed");
    }
    

    【讨论】:

    • 好的,但是当它失败时,你将如何打印失败消息? Utility.Logger.Write("********************失败");
    • MS Test 使用第二个参数作为失败消息的一部分。
    • 同意,但我想在单独的日志记录 txt 文件中记录相同的内容。我们将如何发送失败消息。请浏览我的代码。谢谢你的回复。我也想过用 Driver.close 方法处理,但我需要返回,这不是一个好的解决方案。
    • 我的问题是如果你只使用 Assert 那么你将如何在日志文本文件中编写它。
    • @MikeASP 问题是......你为什么要记录两次?
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多