簡體   English   中英

Sinon.js和instanceof中的模擬類

[英]Mocking class in Sinon.js and instanceof

我想模擬某個類的某個對象,但是要抓住這個錯誤:

function MyClass(){}

var myInstance = new MyClass();
var mock = sinon.mock(myInstance);

console.log(mock instanceof MyClass); // false

如果單元在構造函數中檢查完全相同的instanceof,如何將該模擬傳遞給被測單元?

我知道,那個存根可以解決這個問題,但是我需要Mock。

謝謝=)

如果我沒有記錯的話,Sinon模擬將包裝它們的關聯對象,而不是直接采用其原型鏈,這意味着instanceof永遠不會像您想要的那樣工作。

如果您有能力更改被測單元,請考慮檢查傳入對象(而不是其原型鏈)上是否存在重要屬性。 例如,如果您的單元使用MyClassfoo方法,則讓單元檢查typeof o.foo === 'function'而不是o instanceof MyClass

這個問題是錯的。

無需將mock傳遞給被測單元,我仍然需要傳遞myInstance對象,然后驗證mock

new SUT(myInstance);
mock.verify();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM