I am very new to the dagger - I don’t even know if it will work for my application
I have a search page that returns the latest news about this celebrity.
I wrote a test to check that the results appear on the page when we search for a popular celebrity.
pagehas searchField, for which it is required pagein its constructor, so the web driver that I use for my tests can select it.
Celebrity Search Page Test
public class CelebritySearchPageTest {
@Test
public void testSearchResultsForKevinBaconVerifyHisPopularity() {
CelebritySearchPage searchPage = new CelebritySearchPage();
searchPage.searchFor("Kevin Bacon");
Assert.assertTrue(searchPage.getNumberOfResults() > 9999999, "Verify that Kevin Bacon is still relevant");
}
}
Celebrity Search Page
public class CelebritySearchPage extends Page {
@Inject
@Named("search field")
TextField searchField;
public void searchFor(String text) {
searchField.setText(text);
}
public int getNumberOfResults() {
}
}
Celebrity Search Page Module
@Module(injects = CelebritySearchPage.class)
public class CelebritySearchPageModule {
@Provides
@Named("search field")
public TextField provideSearchField() {
return new TextField(, "#searchField");
}
}
Page
public abstract class Page {
}
Text field
public class TextField {
protected Page page;
protected String selector;
public TextField(Page page, String selector) {
this.page = page;
this.selector = selector;
}
public void setText(String text) {
}
}
The problem is what is pagerequired searchField, but searchFieldrequired page. How do I get this circular dependency?
searchField CelebritySearchPage