Skip to content

Instantly share code, notes, and snippets.

@rightx2
Created November 3, 2016 08:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rightx2/5f5382078f554978ca6cb269d5f8c38e to your computer and use it in GitHub Desktop.
Save rightx2/5f5382078f554978ca6cb269d5f8c38e to your computer and use it in GitHub Desktop.
#
# Mock test
#
@patch('orders.views.OrderView.generate_merchant_uid')
@patch('orders.views.services.register_expected_price')
def test_merchant_uid_is_generated_on_GET_request(
self, mock_register_expected_price, mock_generate_merchant_uid
):
"""
1. mock arg의 순서가 중요하다!
patch 나열되어 있는 순서랑 맞아야되!
2. mock_register_expected_price는 arg에 선언만 해주면 됨
왜냐하면 register_expected_price의 return값도 mock일텐데
View에서 `if success:` 로 했기 때문에, 그냥 통과해버림.
그래도, 명시적으로 return_value를 True로 설정해주는 것이 더 좋을듯
"""
mock_generate_merchant_uid.return_value = "gen_merchant_uid"
self.client.get(reverse('orders:order'))
# GET request에 의해 merchant_uid가 생성된다
self.assertTrue(mock_generate_merchant_uid.called)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment