簡體   English   中英

正則表達式導致我的單元測試失敗。 為什么?

[英]Regular expression causing my failing unit tests. Why?

我在正則表達式方面很難過。 我的導致我的單元測試失敗。 我嘗試了幾種不同的方法,但均未成功。 也許我要去做錯了。 我需要它使用一個單詞(小號)或兩個單詞之間加一個空格(法國號)。

我遇到問題的財產。

public string Name
    {
        get { return _name; }
        set
        {
            string source = propTI.ToTitleCase(value.Trim());
            string pattern = "^[A-Z][a-z]*\\s[A-Z][a-z]*$";
            if (Regex.IsMatch(source, pattern))
                _name = source;
            else
            {
                throw new ArgumentException("Name must have proper case!");
            }
        }
    }

我也嘗試過使用“ ^([AZ] [az] \\ s) $”作為模式。

構造函數:

public Instrument() : this(DefaultName, DefaultCategory) { }

單元測試:

  [TestMethod]   
  public void Instrument_Name_IsValid()
    {
        var na = "french";
        var goodna = "French";
        var inst = new Instrument();
        inst.Name = na;
        Assert.AreEqual(goodna, inst.Name);
    }

正則表達式應該使用什么? 既然這些顯然行不通?

Casimir et Hippolyte有答案:

^[A-Z][a-z]*(?:\\s[A-Z][a-z]*)*$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM