下面是我将要测试的方法,我希望IsPhoneNomValid()返回false,这样我就可以Assert我的期望值:
public async Task<UserResponseDto> RegisterUser(RegistrationRequestDto register, CancellationToken cancelationToken)
{
// I want the IsPhoneNomValid() method, Would return "FALSE"
var isPhoneNumberValid = register.PhoneNumber.IsPhoneNomValid();
if (!isPhoneNumberValid)
return new UserResponseDto
{
Status = new StatusMaker().ErrorStatus("Some Error Message")
};
var isActiveAccountPhoneNumberExists = await IsActiveAccountPhoneNumberExist(register.PhoneNumber, cancelationToken);
if (isActiveAccountPhoneNumberExists.Status == "error")
return new UserResponseDto
{
Status = isActiveAccountPhoneNumberExists
};
}
RegisterUser_MustReturnPhoneNumberError是我的测试方法:
public class AccountUserTests
{
private Mock<IUserService> _userService { get; set; }
public AccountUserTests()
{
_userService = new Mock<IUserService>();
}
public async Task RegisterUser_MustReturnPhoneNumberError()
{
//Arrang
// in here I want to setup IsPhoneNomValid() would return false.
//Act
//Assert
}
}
有什么方法可以测试我正在测试的主函数中使用的静态方法吗?
下面是IsPhoneNomValid()代码:
public static class Validation
{
public static bool IsPhoneNomValid(this string phoneNumber)
{
//TODO Does it need to be foreign phone numbers ?
var isMatch = Regex.Match(phoneNumber, @"^09[0-9]{9}$");
if (isMatch.Success)
return true;
return false;
}
}
2条答案
按热度按时间vsikbqxv1#
您希望测试静态方法IsPhoneNomValid。
使用InlineData,您可以使用多个电话号码进行测试。
eeq64g8w2#
最好的选择是在你的情况下使用一个真正无效的电话号码,但是我有一个库SMock可以做你想做的事情,下面是一个用法示例: