我目前正在使用Google Places,并创建了一个抽象的地点选择器,也是一个使用Google Places的具体实现。
我正在为它做一些单元测试。我来到了我想模拟GMSPlace(https://developers.google.com/places/ios-sdk/reference/interface_g_m_s_place)的步骤
问题是GMSPlace类的默认初始化不可用。
/**
* Default init is not available.
*/
- (instancetype)init NS_UNAVAILABLE;
有人能分享一下我们如何在init不可用的情况下模拟这些东西吗?
谢谢
1条答案
按热度按时间ovfsdjhp1#
这可能是测试GMSPlace的替代方法。GMSPlace是Google Places API for iOS中的一个类。它代表一个特定的地方,包括它的名称、地址和其他细节。如果您想模拟GMSPlace进行测试,可以使用依赖注入和协议。
1 -创建一个协议,它表示您需要从GMSPlace获得的必要属性和方法。
2 -创建一个符合Place协议的mock类。
3-扩展GMSPlace类以符合Place协议。
4-修改您的代码以依赖于Place协议而不是直接依赖于GMSPlace类。这允许您在代码中使用真实的的GMSPlace对象或MockPlace对象,使其更具可测试性。
5-现在可以使用MockPlace类进行测试。