亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將單元測試添加到我的流暢驗證類中?

如何將單元測試添加到我的流暢驗證類中?

C#
慕姐8265434 2021-11-28 16:26:45
我有 ac# 模型類(Address.cs),它看起來像這樣......namespace myProject.Models{    [Validator(typeof(AddressValidator))]    public class Address    {        public string AddressLine1 { get; set; }        public string PostCode { get; set; }    }}我有一個驗證器類(AddressValidator.cs),它看起來像這樣......namespace myProject.Validation{    public class AddressValidator : AbstractValidator<Address>    {        public AddressValidator()        {            RuleFor(x => x.PostCode).NotEmpty().WithMessage("The Postcode is required");            RuleFor(x => x.AddressLine1).MaximumLength(40).WithMessage("The first line of the address must be {MaxLength} characters or less");        }    }}我想知道如何為我的驗證器類添加單元測試,以便我可以測試,例如,“地址行 1”最多需要 40 個字符?
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您可以使用以下內容(這使用 xunit,根據您的首選框架進行調整)


public class AddressValidationShould

{

  private AddressValidator Validator {get;}

  public AddressValidationShould()

  {

    Validator = new AddressValidator();

  }


  [Fact]

  public void NotAllowEmptyPostcode()

  {

    var address = new Address(); // You should create a valid address object here

    address.Postcode = string.empty; // and then invalidate the specific things you want to test

    Validator.Validate(address).IsValid.Should().BeFalse();

  }

}

...顯然創建其他測試來涵蓋應該/不應該允許的其他事情。比如AddressLine140以上無效,40以下有效。


查看完整回答
反對 回復 2021-11-28
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

使用 MSTest,您可以編寫


[TestMethod]

public void NotAllowEmptyPostcode()

{

    // Given

    var address = new Address(); // You should create a valid address object here

    address.Postcode = string.empty; // invalidate the specific property


    // When

    var result = validator.Validate(address);

    

    // Then (Assertions)

    Assert.That(result.Errors.Any(o => o.PropertyName== "Postcode"));

}


查看完整回答
反對 回復 2021-11-28
  • 2 回答
  • 0 關注
  • 241 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號