如何更改 Assert.Fail 消息

use*_*672 0 c# unit-testing visual-studio-2010

当我运行这个测试时,我得到一个“Assert.Fail failed. Assert.AreEqual failed. Expected:. Actual:.”

如何在错误消息末尾没有“实际:”的情况下使此测试通过或失败?我使用“Assert.Fail(ex.Message);” 在其他几个测试中,所以我无法直接更改消息。

    [TestMethod]
    public void TestCreateUser()
    {
       try
       {
          AsaMembershipProvider prov = this.GetMembershipProvider();
          //call get user
          MembershipCreateStatus status;
          MembershipUser user = prov.CreateUser("testUserX", "12345", "test.UserX@abc.com", "", "", true, null, out status);

          Assert.AreNotEqual(status, MembershipCreateStatus.Success);
          var isAuthenticated = prov.ValidateUser(user.UserName, "12345");

          Assert.IsTrue(isAuthenticated);
          Assert.AreEqual(user.UserName, "testUserX");
          Assert.AreEqual(user.Email, "test.userx@abc.com");
          Assert.IsTrue(user.CreationDate==DateTime.Now);
          //TODO Asserts

       }

       catch (Exception ex)
       {
          LogMessage(ex);
          Assert.Fail(ex.Message);
       }
    }
Run Code Online (Sandbox Code Playgroud)

ill*_*ant 5

好吧,据我所知,您想为断言指定自定义失败消息吗?

好的,

Assert.AreEqual( object expected, object actual, string message );
Run Code Online (Sandbox Code Playgroud)

更多在这里

您甚至可以创建一些特殊的失败断言,请在此处阅读有关CustomAsserts 的信息

IMO,您不需要那个 try-catch 块,只需将自定义消息添加到您的断言中