Ben örneğin, belirli argümanlarla denir sadece ama eğer Jest sahip bir işlev alay etmek istiyorum:Fonksiyonları Jest'i kullanarak belirli argümanlar ile alay edebilir miyim?
class Math
def self.sum(x, y)
return x + y
end
end
allow(Math).to receive(:sum).with(1, 1).and_return(4)
Math.sum(1, 1) # returns 4 (mocked)
Math.sum(1, 2) # returns 3 (not mocked)
: Ruby'nin RSpec kütüphanesinde uygulanan benzer bir özelliği yoktur
function sum(x, y) {
return x + y;
}
// mock sum(1, 1) to return 4
sum(1, 1) // returns 4 (mocked)
sum(1, 2) // returns 3 (not mocked)
0123:
ne benim testlerde elde etmek çalışıyorum daha iyi bir ayırma olduğunu, bu reklam sum
dayanan bir işlevi test etmek istiyorum diyelim
sum = jest.fn(function (x, y) {
if (x === 1 && y === 2) {
return "anything I want";
} else {
return sum(x, y);
}
});
expect(sum2(1)).toBe("anything I want");
Ama bunu basitleştirmek için biraz şeker işlevi olsaydı çok güzel olurdu:
function sum2(x) {
return sum(x, 2);
}
// I don't want to depend on the sum implementation in my tests,
// so I would like to mock sum(1, 2) to be "anything I want",
// and so be able to test:
expect(sum2(1)).toBe("anything I want");
// If this test passes, I've the guarantee that sum2(x) is returning
// sum(x, 2), but I don't have to know what sum(x, 2) should return
Ben böyle bir şey yaparak bu uygulamak için bir yol olduğunu biliyoruz.
Kulağa mantıklı geliyor mu? Bu özelliği Jest'te zaten var mı?
Geri bildiriminiz için teşekkür ederiz.