我有一个简单的应用程序,并希望使其可测试.我是这个领域的新人.这是一个简单的Presenter,请记住这段代码,你能建议或给我一些如何测试它的例子.
public class SomePresenter extends Presenter<MainPanelPresenter.Display>
{
public interface Display extends WidgetDisplay
{
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
void setData(ArrayList<Person> data);
ArrayList<String> getSelectedRows();
Widget asWidget();
}
private final DispatchAsync dispatcher;
public static final Place PLACE = new Place("main");
@Inject
public SomePresenter(DispatchAsync dispatcher, EventBus eventBus, Display display)
{
super(display, eventBus);
this.dispatcher = dispatcher;
bind();
}
protected void onBind()
{
display.getAddButton().addClickHandler(new ClickHandler()
{
public void onClick(ClickEvent event)
{
eventBus.fireEvent(new AddButtonEvent());
}
});
display.getDeleteButton().addClickHandler(new ClickHandler()
{
public void onClick(ClickEvent event)
{
ArrayList<String> list = …
Run Code Online (Sandbox Code Playgroud) 我在jsf中有一个dataTable,我如何从该表中获取所有值.
这是我的表:
<h:dataTable id="dt1" value="#{Metadata.placeholders}" var="item" binding="#{Metadata.dataTable}" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="0" rows="4" width="40%" frame="hsides" rules="all" summary="This is a JSF code to create dataTable." >
<f:facet name="header">
<h:outputText value="Select elements for available placeholder" />
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="Placeholder" />
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Element"/>
</f:facet>
<h:selectOneListbox id="elements" size="1" >
<f:selectItems value="#{item.elements}" />
</h:selectOneListbox>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Value"/>
</f:facet>
<h:inputText></h:inputText>
</h:column>
</h:dataTable><br>
Run Code Online (Sandbox Code Playgroud)
如您所见,第二列和第三列是列表框和输入文本字符,因此假设该表有5行,用户从列表框中选择一个值并在文本字段中输入文本,那么我怎么能得到它用户按"提交"按钮后的数据?
我有一个类"A",它读取XML文件并进行一些处理.我在构造函数中添加了一个方法"load",但我想知道如果XML文件大小很大并且需要时间加载会发生什么.
class A
{
public String fileName;
A(String fileName)
{
this.fileName = fileName;
load();
}
private load()
{
//here i load some xml file by given file name;
}
public searchByTag(String sometag)
{
//some search
}
public extractData()
{
//extract some data
}
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我们有以下情况:
A a = new A("somefile");
a.searchByTag("tag");
a.extractData();
Run Code Online (Sandbox Code Playgroud)
对象"a"是在加载文件后创建的,对吧?
我试过这样的事情:
@Singleton
public class AAA implements EntryPoint, HistoryListener
{
private BBB bbb;
private CCC ccc;
private DDD ddd;
private EEE eee;
@Inject
public AAA(BBB bbb, CCC ccc, DDD ddd, EEE eee)
{
this.bbb = bbb;
this.ccc = ccc;
this.ddd = ddd;
this.eee = ee;
}
.........
}
Run Code Online (Sandbox Code Playgroud)
结果对所有实例都为null ..我希望这种方式工作......
我知道我可以做这样的事情
private final MyGinjector injector = GWT.create(MyGinjector.class);
injector.getAAA()
and so on..
Run Code Online (Sandbox Code Playgroud)
为什么我尝试的第一种方式对我不起作用?有什么建议?
谢谢