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)
好吧,据我所知,您想为断言指定自定义失败消息吗?
好的,
Assert.AreEqual( object expected, object actual, string message );
Run Code Online (Sandbox Code Playgroud)
更多在这里
您甚至可以创建一些特殊的失败断言,请在此处阅读有关CustomAsserts 的信息
IMO,您不需要那个 try-catch 块,只需将自定义消息添加到您的断言中