mock.property(object, propertyName[, value])
object<Object> 其值正在被模拟的对象。propertyName<string> | <symbol> 要模拟的object上属性的标识符。value<any> 用作object[propertyName]的模拟值的可选值。**默认值:**原始属性值。- 返回:<Proxy> 被模拟对象的代理。被模拟的对象包含一个特殊的
mock属性,它是MockPropertyContext的实例,可用于检查和更改被模拟属性的行为。
为对象上的属性值创建一个模拟。这允许你跟踪和控制对特定属性的访问,包括读取(getter)或写入(setter)的次数,并在模拟后恢复原始值。
【Creates a mock for a property value on an object. This allows you to track and control access to a specific property, including how many times it is read (getter) or written (setter), and to restore the original value after mocking.】
test('mocks a property value', (t) => {
const obj = { foo: 42 };
const prop = t.mock.property(obj, 'foo', 100);
assert.strictEqual(obj.foo, 100);
assert.strictEqual(prop.mock.accessCount(), 1);
assert.strictEqual(prop.mock.accesses[0].type, 'get');
assert.strictEqual(prop.mock.accesses[0].value, 100);
obj.foo = 200;
assert.strictEqual(prop.mock.accessCount(), 2);
assert.strictEqual(prop.mock.accesses[1].type, 'set');
assert.strictEqual(prop.mock.accesses[1].value, 200);
prop.mock.restore();
assert.strictEqual(obj.foo, 42);
});