Last active
December 17, 2015 19:49
-
-
Save orakaro/5663205 to your computer and use it in GitHub Desktop.
Try to create seperate function init_mock
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TestModel(unittest.TestCase): | |
def setUp(self): | |
self.order = Order() | |
def init_mock(self): | |
ary = dict() | |
ary["cached_pdf"] = PropertyMock(return_value='StoryTree/tests/fixtures/1.pdf') | |
ary["backcover"] = mock.Mock(return_value=image) | |
ary["frontcover"] = mock.Mock(return_value=image) | |
ary["input_files"] = mock.Mock(return_values=['']) | |
return ary | |
@mock.patch('StoryTree.helpers.generator.pdf.merge_pdf_files') | |
def test_create_final_pdf_file(self, mock_merge_pdf): | |
self.order.order_type = Order.SOFT_COVER | |
mock_cached_pdf, mock_backcover, mock_front_cover, mock_input_files = self.init_mock().values() | |
with nested( | |
mock.patch.object(Order, 'create_input_files', mock_input_files) | |
mock.patch.object(Order, 'cached_pdf_file', mock_cached_pdf), | |
mock.patch.object(Tree, 'create_backcover_image', mock_backcover), | |
mock.patch.object(Tree, 'create_frontcover_image', mock_front_cover)): | |
self.order.create_final_pdf_file('STORYTREE01111') | |
self.assertEqual(1, mock_backcover.call_count) | |
self.assertEqual(1, mock_frontcover.call_count) | |
self.assertEquals(1, mock_input_files.call_count) |
Ok done, nhưng viết hàm riêng ra là hoàn toàn có thể đúng ko? Và với quan điểm cậu nêu ra trên bài viết về độ dài của 1 hàm trong code, thì trong test code cũng tương tự chứ :Hàm dài thì nên tách ra và các phần mang ý nghĩa khác nhau thì nên là các hàm con khác nhau ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ham self.init_mock bi goi di goi lai 4 lan, voi ca khong co cac bien mock_backcover, mock_frontcover, mock_input_files
Nen sua lai la
Nhung t chi nen lam the neu ham init_mock duoc goi nhieu lan trong TestModel hoac khong self.init_mock() se phai giam so luong mock object create trong do