Mimic是一个Ruby宝石,允许您为端到端测试创建实时服务器占位符。
尽管Mimic是用Ruby编写的,但它可以作为一个独立组件运行,无需预先配置的请求占位符,并通过它嵌入的REST API动态配置(请参阅Mimic的README以获取更多信息)。
Mimic目前附带了一个用于其REST API的Objective-C包装器的初步实现。这是一个建立更好、更流畅API的尝试。
为了尽可能使测试确定性高,Mimic完全同步运行。您可能永远不会在任何除测试之外的地方使用它,但如果您这样做,请记住这一点。由于它与本地服务器通信,因此速度相当快。
要使用LRMimic,需要一个mimic守护器正在运行(有关如何执行此操作,请参阅Mimic的README)。您可能希望在测试前后使用Xcode的方案测试操作的预操作和后操作来启动和停止它。
NSURL *serverURL = [NSURL URLWithString:@"https://:9999"]
LRMimic *mimic = [[LRMimic alloc] initWithServerURL:serverURL];
[mimic respondTo:^(LRMimicStub *stub) {
[stub get:@"/example" itReturns:^(LRMimicStubResponse *response) {}];
}];
这将为GET /example
请求创建一个默认的响应占位符,返回200 OK和一个空响应体。
[mimic respondTo:^(LRMimicStub *stub) {
[stub get:@"/example" itReturns:^(LRMimicStubResponse *response) {
[response setStatus:200];
[response setBody:@"This is my response"];
[response setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
}];
}];
[mimic respondTo:^(LRMimicStub *stub) {
[stub get:@"/example" itReturns:^(LRMimicStubResponse *response) {
[response setStatus:200];
[response setJSONBody:[NSDictionary dictionaryWithObject:@"bar" forKey:@"foo"]];
}];
}];
这将使用NSJSONSerialization
将对象转换为JSON字符串,将其设置为响应体,并将响应Content-Type
配置为application/json
。
LRMimic有用于模拟GET、POST、PUT和DELETE请求的方法。有关详细信息,请参阅LRMimic.h
。
此许可证与mimic
相同,即是MIT许可证。