2016-08-15 4 views
0

Wie schreibt man Tests in eine Funktion mit den neu hinzugefügten Builds von Python 3.5 os.scandir()? Gibt es einen Helfer, um DirEntry Objekte zu verspotten?Wie schreibt man Tests für eine Funktion mit py3.5 os.scandir()?

Irgendwelche Vorschläge, wie os.scandir() eines leeren Ordners und eines Ordners mit wenigen 2 Dateien zum Beispiel?

+0

Ich glaube, Sie suchen nach [mock.patch()] (https://docs.python.org/3/library/unittest.mock.html#unittest.mock .patch) Dekorateur – Compadre

Antwort

0

Wie vorgeschlagen, beinhaltet meine Lösung @mock.patch() Dekorateur. Mein Test wurde so etwas wie:

from django.test import TestCase, mock 
from my_app.scan_files import my_method_that_return_count_of_files 

mock_one_file = mock.MagicMock(return_value = ['one_file', ]) 

class MyMethodThatReturnCountOfFilesfilesTestCase(TestCase): 
    @mock.patch('os.scandir', mock_one_file) 
    def test_get_one(self): 
     """ Test it receives 1 (one) file """ 
     files_count = my_method_that_return_count_of_files('/anything/') 
     self.assertEqual(files_count, 1) 
Verwandte Themen