Чтение / запись поддельных файлов через JUnit

#for Python 3.2
import urllib.request
page = urllib.request.urlopen("http://www.google.com")
print (page.read())
3
задан lemoncodes 18 January 2019 в 11:50
поделиться

3 ответа

Так как Mockito не может смоделировать статические методы, вместо этого используйте фабрику File (или реорганизуйте ваш FileUtils, чтобы он был фабрикой), тогда вы можете смоделировать его и вернуть имитированный экземпляр File, где вы также можете высмеивать любые File методы, которые вы хотите.

Таким образом, вместо FileUtils.getFile(filepath) у вас теперь будет что-то вроде FileFactory.getInstance().getFile(filepath), например, где вы можете легко смоделировать метод getFile(String).

0
ответ дан m0skit0 18 January 2019 в 11:50
поделиться

Вместо того чтобы полагаться на права доступа к файлам операционной системы, используйте PowerMock для насмешки над FileUtils.getFile (...) и заставьте его возвращать экземпляр File (например, анонимный подкласс), который возвращает конкретное значение для canWrite () / canRead ().

Пересмешивание статических методов с помощью Mockito

0
ответ дан Torben 18 January 2019 в 11:50
поделиться

В jUnit есть удобное правило для таких сценариев, как ваш.

public class MyHandlerTest {

    @Rule
    // creates a temp folder that will be removed after each test
    public org.junit.rules.TemporaryFolder folder = new org.junit.rules.TemporaryFolder();

    private MyHandler handler;

    @Before
    public void setUp() throws Exception {
        File file = folder.newFile("myFile.txt");
        // do whatever you need with it - fill with test content and so on.
        handler = new MyHandler(file.getAbsolutePath()); // use the real thing
    }

    // Test whatever behaviour you need with a real file and predefined dataset.
}
0
ответ дан SimY4 18 January 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: