我在src / test / java下给了这两个类
func getCountryFromDB(_ fetchOffSet: Int) -> [Any] {
var record = [Any]() /* capacity: 0 */
var context: NSManagedObjectContext? = self.getManagedObjectContext()
var fetchRequest = NSFetchRequest()
self.fetchRequest.fetchLimit = 10
self.fetchRequest.fetchOffset = fetchOffSet
var entityDesc = NSEntityDescription.entity(forEntityName: "Country", in: self.context)
self.fetchRequest.entity = self.entityDesc
var error: Error?
var fetchedOjects: [Any]? = try? self.context.fetch(self.fetchRequest)
for i in 0..<self.fetchedOjects.count {
var country: Country? = self.fetchedOjects[i]
self.record.append(self.country)
}
return self.record
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
// UITableView only moves in one direction, y axis
var currentOffset: CGFloat = scrollView.contentOffset.y
var maximumOffset: CGFloat = scrollView.contentSize.height - scrollView.frame.size.height
// Change 50.0 to adjust the distance from bottom
if maximumOffset - currentOffset <= 50.0 {
if self.yourCoreDataRecordArray.count > 10 {
fetchOffSet = fetchOffSet + 10
var array: [Any] = self.getCountryFromDB(fetchOffSet)
}
}
}
我阅读了文档,但仍然有很多问题。当我点击“运行为Junit测试”时,它会收到一个错误,因为无法自动装配我的bean“示例”。我如何说弹簧启动在src / test / java中寻找bean呢?我的第二个问题是如何使用另一个application.properties,专用于测试?
答案 0 :(得分:0)
查看@TestComponent的JavaDoc,它说明了以下内容:
&#34; @Component可以在bean仅用于测试时使用,并且应该从Spring Boot的组件扫描中排除。&#34;
所以,示例不会被连线。我不确定你是通过测试另一个测试类来实现的。也许尝试将示例放在src / main / java下并使用@Component注释它?
对于测试特定属性,请查看@TestPropertySource的文档。这样,您可以使用行中的新值或单独的文件覆盖属性。
答案 1 :(得分:0)
您可以构建一个Configuration
类并在那里创建bean
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = ExampleTest.Config.class)
@SpringBootTest
public class ExampleTest {
@Autowired
private Example example;
@Test
public void getTwoTest() {
assertEquals(new Integer(2), example.getTwo());
}
@Configuration
@PropertySource("classpath:my.properties")
@ComponentScan(basePackages = {"my.package"})
public static Config {
@Bean
public Example example() {
return new Example();
}
}
}
无论如何,this回答说正确的注释。您不应该像这样创建bean,或者在主应用程序中创建bean并使用该批注从应用程序上下文中过滤掉bean。使用@TestConfiguration
注释的类也是如此。
最后,如果您不需要上下文(即您有单元测试),则根本不需要自动装配bean,您可以使用@MockBean
和@SpyBean
。