【问题标题】:Ruby rspec check string begins with certain valuesRuby rspec 检查字符串以某些值开头
【发布时间】:2016-09-17 22:54:15
【问题描述】:

我有一个字符串,它以一个集合开头,然后由随机生成的字母填充到 252 个字符。 (237 个随机字符 - 使结束长度为 252 个字符)

为了测试字符串以TESTDATAMENDNOW开头,其余为随机大写字母。

如何测试字符都是大写字母 并且字符串以TESTDATAMENDNOW开头

我尝试使用正则表达式来定义它,但我不太确定如何让它们正常工作,而且到目前为止我尝试过的似乎不起作用。

编辑:清晰度

【问题讨论】:

    标签: ruby regex string rspec


    【解决方案1】:
    expect(string).to match(/\ATESTDATAMENDNOW[A-Z]{237}\z/)
    

    237 因为252 减去"TESTDATAMENDNOW" 的长度就是237

    【讨论】:

    • 一开始我有一个错误,但似乎你没有考虑到结束字符串是252个字符,而不是随机部分,所以应该是237
    • @SovietKetchup 如果这不是你想要的,那是你的错。如果它应该是 237,那么你应该这样写。也不清楚您所说的“结束字符串”或“结束长度”是什么意思。
    • “然后填充到 252 个字符”如果不是很清楚,我们深表歉意。我在原帖中添加了一些说明
    • 我也不清楚你为什么要分两步写"TESTDATA""MENDNOW"。你不能写字符串以"TESTDATAMENDNOW"开头吗?
    【解决方案2】:

    这是另一种不使用正则表达式的方式:

    str = "TESTDATAMENDNOW"
    expect(string[0,str.size]).eq(str)
    expect(string.delete("ABCDEFGHIJKLMNOPQRSTUVWXYZ").eq("")
    expect(string.size).eq(252)
    

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 2017-09-27
      • 2018-12-27
      • 2017-11-08
      • 2011-01-11
      • 2014-12-02
      • 1970-01-01
      相关资源
      最近更新 更多