#for Python 3.2
import urllib.request
page = urllib.request.urlopen("http://www.google.com")
print (page.read())
Так как Mockito не может смоделировать статические методы, вместо этого используйте фабрику File
(или реорганизуйте ваш FileUtils
, чтобы он был фабрикой), тогда вы можете смоделировать его и вернуть имитированный экземпляр File
, где вы также можете высмеивать любые File
методы, которые вы хотите.
Таким образом, вместо FileUtils.getFile(filepath)
у вас теперь будет что-то вроде FileFactory.getInstance().getFile(filepath)
, например, где вы можете легко смоделировать метод getFile(String)
.
Вместо того чтобы полагаться на права доступа к файлам операционной системы, используйте PowerMock для насмешки над FileUtils.getFile (...) и заставьте его возвращать экземпляр File (например, анонимный подкласс), который возвращает конкретное значение для canWrite () / canRead ().
В 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.
}