代码之家  ›  专栏  ›  技术社区  ›  Juicy

嘲笑来自同一类的promise返回方法

  •  0
  • Juicy  · 技术社区  · 8 年前

    我想模拟/存根一个类方法的解析,该类方法在测试同一类的另一个方法时返回一个promise。我在用 jest .

    我有下列课程 Blah 我想测试一下 foo() 方法:

    export default class Blah {
      foo () {
        this.bar().then(result => {
          // some logic here
        })
      }
    
      bar () {
        return new Promise(function (resolve, reject) {
          // fetches some stuff over the network
          resolve('hello world')
        })
      }
    }
    

    因为 英尺() 使用 bar() 巴尔) ;假设让它解决 what up .

    假设测试看起来像这样:

    import Blah from './blah'
    
    test('foo() - bar() resolves "what up"', () => {
      const blah = new Blah()
      // mock blah.bar() so that is resolves "what up"
    
      // {some assertions on blah.foo() here}
    })
    

    这是我第一次和 开玩笑 我已经看完了所有的文件,但是我还是很难把我的头放在这个案子上。

    我如何嘲笑 巴尔) 测试时 英尺() ?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jared Smith    8 年前

    仍然只是javascript的意思 任何 对象属性可以动态覆盖:

    // in the test file
    const blah = new Blah();
    blah.bar = _ => Promise.resolve("what up");
    
    // now some assertions about blah.foo