# # 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)