【问题标题】:Mock the length of a string模拟字符串的长度
【发布时间】:2016-03-28 22:24:18
【问题描述】:

我正在尝试(使用 Jasmine)测试对最大长度为 1000 个字符的描述字段(这是一个可淘汰的可观察对象)的验证; 我通常做的是expect(model.description().length).toBe(1000); 证明我的字符串具有所需的长度。 有什么方法可以模拟它而不需要实际编写一个 1000 个字符长的字符串?

【问题讨论】:

  • 你可以使用Array(1001).join("a")
  • 谢谢,如果没有别的办法,那我就用吧:)
  • 检查只是为了通过测试而生成的字符串的长度的目的是什么?
  • 你可以修改 model.description 并在其中放置一个具有可设置 length 属性的可观察对象的模拟。但这对我来说就像一个 XY 问题 :-)
  • 在这种情况下,".".repeat(1000) 之类的东西可以做到这一点,如果你只对长度属性感兴趣,甚至只是 { length: 1000 }

标签: javascript knockout.js jasmine


【解决方案1】:

如果您打算模拟对象并且只想使用length 属性而没有其他任何东西,那么正如@GOTO-0 所提到的,您可以创建一个具有该属性集的对象,如下所示:{ length: 1000 }

但是,创建一个该长度的字符串似乎更容易。这可能会有所帮助,就好像某些代码更改为在其他地方需要一个实际的字符串一样,测试仍然有效,而不是您必须开始模拟字符串的其他方法和属性。有关如何做到最好的讨论,请参阅此问题:Create a string of variable length, filled with a repeated character

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多