Tôi đang sử dụng Spring 3.1.4.RELEASE và Mockito 1.9.5. Trong lớp Spring của tôi, tôi có:
@Value("#{myProps['default.url']}")
private String defaultUrl;
@Value("#{myProps['default.password']}")
private String defaultrPassword;
// ...
Từ thử nghiệm JUnit của tôi, mà tôi hiện đã thiết lập như vậy:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class MyTest
{
Tôi muốn giả một giá trị cho trường "defaultUrl" của mình. Lưu ý rằng tôi không muốn giả mạo các giá trị cho các trường khác - tôi muốn giữ nguyên các giá trị đó, chỉ trường "defaultUrl". Cũng xin lưu ý rằng tôi không có phương thức "setter" rõ ràng (ví dụ setDefaultUrl
) trong lớp của mình và tôi không muốn tạo bất kỳ phương thức nào chỉ cho mục đích thử nghiệm.
Với điều này, làm cách nào tôi có thể giả lập một giá trị cho một trường đó?
ReflectionTestUtils.setField(bean, "fieldName", "value");
trước khi gọibean
phương thức của bạn trong quá trình kiểm tra.