moq
专为GS语言设计的Mock测试库,采用源代码生成方案,完全兼容原生调用
🚀 快速开始
基础用法
import pkg.moq.*;
// 创建Mock
Mock mock = create_mock("game/user_service");
mock.setup("get_user_name")
.with_args([it.a_int()])
.returns("测试玩家");
// 激活Mock
mock.activate();
// 获取Mock代理对象
object ob = mock.of();
// 直接调用Mock方法(完全兼容原生调用)
string name = ob.get_user_name(123); // 直接调用
// 验证调用 - 使用全局验证函数
moq.verify(ob, times.once(), "get_user_name");
// 验证调用并检查参数
moq.verify(ob, times.once(), "get_user_name", 123);
// 注销Mock
mock.deactivate();
📖 核心功能
🔧 严格模式支持
GS-Moq 支持严格模式,用于验证被Mock的方法是否真实存在:
// 启用严格模式(默认)
Mock mock = mock_object("service/calculator");
mock.set_strict_mode(true); // 验证方法存在性
// 禁用严格模式(允许Mock不存在的方法)
mock.set_strict_mode(false);
// 检查严格模式状态(默认启用)
bool is_strict = mock.is_strict_mode();