めも。
doGet()メソッドの試験をする場合。
HTTP関連のクラスはXXXXAdapterが用意されている。
テストメソッド例:
public void testDoGet1() throws Throwable {
HttpServletRequestAdapter httpServletRequestAdapter = new HttpServletRequestAdapter();
httpServletRequestAdapter.addParameter("type", "1");
HttpServletResponseAdapter httpServletResponseAdapter = new HttpServletResponseAdapter();
MainServlet testedObject = new MainServlet();
testedObject.doGet(httpServletRequestAdapter, httpServletResponseAdapter);
}
スタブ例:
public Object stubsDoGet1(Member method, Object _this, Object[] args) throws Throwable {
Class[] argument_types;
if (Stubs.matches(method, クラス名.class)) {
argument_types = new Class[] { 引数のクラス名.class };
if (Stubs.matches(method, "メソッド名", argument_types)) {
// 複数回呼ばれるメソッドで異なる結果を返したい場合は_stubs_iterationを利用
int index = _stubs_iteration.getIterationCount("java.io.BufferedReader.readLine()");
switch (index) {
case 1:
return "test";
default:
return Stubs.NO_STUB_GENERATED;
}
}
}
return Stubs.NO_STUB_GENERATED;
}
_stubs_iterationを使う場合は、setUp()メソッドに次の1行を追加。
_stubs_iteration = new jtest.StubIterationCounter();
更に、テストクラス内で_stubs_iterationの宣言をしておくこと。
private jtest.StubIterationCounter _stubs_iteration;
ちなみに。
privateメソッドの場合は、JT.invokeを使用。
MainServlet testedObject = new MainServlet();
JT.invoke(MainServlet.class, testedObject, "privateMethod",
new Object[] { "string" }, new Class[] { String.class });
doGet()メソッドの試験をする場合。
HTTP関連のクラスはXXXXAdapterが用意されている。
テストメソッド例:
public void testDoGet1() throws Throwable {
HttpServletRequestAdapter httpServletRequestAdapter = new HttpServletRequestAdapter();
httpServletRequestAdapter.addParameter("type", "1");
HttpServletResponseAdapter httpServletResponseAdapter = new HttpServletResponseAdapter();
MainServlet testedObject = new MainServlet();
testedObject.doGet(httpServletRequestAdapter, httpServletResponseAdapter);
}
スタブ例:
public Object stubsDoGet1(Member method, Object _this, Object[] args) throws Throwable {
Class[] argument_types;
if (Stubs.matches(method, クラス名.class)) {
argument_types = new Class[] { 引数のクラス名.class };
if (Stubs.matches(method, "メソッド名", argument_types)) {
// 複数回呼ばれるメソッドで異なる結果を返したい場合は_stubs_iterationを利用
int index = _stubs_iteration.getIterationCount("java.io.BufferedReader.readLine()");
switch (index) {
case 1:
return "test";
default:
return Stubs.NO_STUB_GENERATED;
}
}
}
return Stubs.NO_STUB_GENERATED;
}
_stubs_iterationを使う場合は、setUp()メソッドに次の1行を追加。
_stubs_iteration = new jtest.StubIterationCounter();
更に、テストクラス内で_stubs_iterationの宣言をしておくこと。
private jtest.StubIterationCounter _stubs_iteration;
ちなみに。
privateメソッドの場合は、JT.invokeを使用。
MainServlet testedObject = new MainServlet();
JT.invoke(MainServlet.class, testedObject, "privateMethod",
new Object[] { "string" }, new Class[] { String.class });
勉強させていただきます!