我想在一個文件中單元測試一個函數,同時在SAME文件中存儲另一個函數,但這個模擬沒有被應用,並且真正的方法被調用。這裏有一個例子:使用Sinon在同一個文件中存根方法
// file: 'foo.js'
export function a() {
// .....
}
export function b() {
let stuff = a(); // call a
// ...do stuff
}
而且我的測試:
import * as actions from 'foo';
const aStub = sinon.stub(actions, 'a').returns('mocked return');
actions.b(); // b() is executed, which calls a() instead of the expected aStub()
作爲一個一般的經驗法則,你不應該在你正在測試的同一個模塊中對一個函數進行樁/嘲。如果你發現你需要這樣做,這是一個很好的跡象表明這兩個函數實際上應該在不同的模塊中。當然,雖然規則被打破,有些情況下這可能是好的,但總的來說,你應該避免。 –