我在編寫測試用例時丟失了一點點UserCompanyRateLimitValidation class。我發現模擬正在從這個類內部實例化的類是很困難的。Python mockito - 嘲笑正在從可測試函數實例化的類
class UserCompanyRateLimitValidation:
def __init__(self, user_public_key):
self.adapter = UserAdapter(user_public_key)
container = self.adapter.get_user_company_rate_limit()
super(UserCompanyRateLimitValidation, self).__init__(container,\
UserCompanyRateLimitValidation.TYPE)
我必須測試這個類。我寫過測試用例。我試圖嘲笑UserAdapter類,但我無法完全做到這一點。
def test_case_1():
self.user_public_key = 'TEST_USER_PUBLIC_KEY_XXXXXX1234567890XXXXX'
UserAdapter_mock = mock(UserAdapter)
when(UserAdapter_mock).get_user_company_rate_limit().\
thenReturn(get_fake_container_object())
self.test_obj = UserCompanyRateLimitValidation(self.user_public_key)
在這裏,如果你看,我嘲笑get_user_company_rate_limit()從檢驗的函數調用,container = self.adapter.get_user_company_rate_limit()
但我仍然無法弄清楚,我可以嘲笑這種調用方式,
self.adapter = UserAdapter(user_public_key)
我喜歡這個主意。我將測試這一點,並讓你知道...謝謝@Stefan –
斯特凡我真誠的道歉delay..i將測試此asap..Thanks您的耐心! –
它適合你嗎? – Stefan