C# 哪种方法适合断言

C# 哪种方法适合断言,c#,selenium,selenium-webdriver,mstest,assert,C#,Selenium,Selenium Webdriver,Mstest,Assert,第一种方法:使用try-catch块和Asset。也失败 我使用这种技术在开始执行之前和之后在记录器中打印一些消息 [TestMethod] public void abcButton() { want to print messages so many Logger signs are here Utility.Logger.Write("** " + string.Format(" {0} - {1}", GetType().Name, Method

第一种方法:使用try-catch块和Asset。也失败

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

[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("*********************");
    }
}

请让我知道我们是否可以用更少的代码处理这种情况

我会这样编写测试:

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

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

我会这样写测试:

[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使用第2个参数作为failure message.agree的一部分,但我想在单独的日志txt文件中记录相同的参数。我们将如何发送失败消息。请把上面的代码通读一遍。谢谢你的回复。我也曾想过在Driver.close方法中处理,但我需要再次返回,到目前为止,这不是一个好的解决方案。这是我的问题,如果您使用just Assert,那么您将如何在日志文本文件中写入它。@MikeASP问题是。。。为什么要将所有内容记录两次?好的,但当它失败时,您将如何打印失败消息?Utility.Logger.Write(“***************************失败”);MS Test使用第2个参数作为failure message.agree的一部分,但我想在单独的日志txt文件中记录相同的参数。我们将如何发送失败消息。请把上面的代码通读一遍。谢谢你的回复。我也曾想过在Driver.close方法中处理,但我需要再次返回,到目前为止,这不是一个好的解决方案。这是我的问题,如果您使用just Assert,那么您将如何在日志文本文件中写入它。@MikeASP问题是。。。你为什么要把所有东西都记录两次?