Tôi có lớp sau đây:Làm thế nào để viết một bài kiểm tra đơn vị để bao gồm trường hợp một IOException được ném?
public class FileLoader {
private Map<Brand, String> termsOfUseText = new HashMap<Brand, String>();
public void load() {
for (Brand brand : Brand.values()) {
readAndStoreTermsOfUseForBrand(brand);
}
}
private void readAndStoreTermsOfUseForBrand(Brand brand) {
String resourceName = "termsOfUse/" + brand.name().toLowerCase() + ".txt";
InputStream in = this.getClass().getClassLoader().getResourceAsStream(resourceName);
try {
String content = IOUtils.toString(in);
termsOfUseText.put(brand, content);
} catch (IOException e) {
throw new IllegalStateException(String.format("Failed to find terms of use source file %s", resourceName),e);
}
}
public String getTextForBrand(Brand brand) {
return termsOfUseText.get(brand);
}
}
Nhãn hiệu là một enum, và tôi cần tất cả các file .txt hợp lệ để được vào classpath. Làm thế nào để làm cho IOException xảy ra, cho rằng Enum thương hiệu chứa tất cả các thương hiệu hợp lệ và do đó tất cả các tập tin .txt cho chúng tồn tại?
Gợi ý xung quanh việc tái cấu trúc mã hiện tại được hoan nghênh nếu nó làm cho nó dễ kiểm tra hơn!
+1 - Tôi sẽ ghi đè lên các enum và tạo một enum giả bao gồm tên tập tin không hợp lệ .Also gợi ý cho thấy enum thương hiệu của bạn và làm thế nào là tải funcation được gọi là và thương hiệu thông qua. – Shahzeb
Enums là cuối cùng. Ghi đè không phải là một tùy chọn. –