Как я могу проверить Компонент с Гобеленом Testify - PullRequest
0 голосов
/ 15 марта 2011

Я делаю некоторые тесты с библиотекой гобеленов-свидетельств. Но у меня есть вопрос по поводу его документации: http://tapestry.formos.com/nightly/tapestry-testify/testing-components.html

Я бы хотел передать другое значение параметру моего компонента. Может ли кто-нибудь объяснить мне, как я могу это сделать.

У меня та же структура проекта, что и в документации.

myComponent.java

public class myComponent {    
    @Parameter
    @Property
    private String myParam;
}

myComponent.tml

<fieldset xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
    <p>test ${myParam}</p>
</fieldset>

myComponentDemo.java

public class MyComponentDemo {
    @Inject
    @Service("myParam")
    @Property
    private String myParam;    
}   

myComponentDemo.tml

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
    <head>
        <title>DayMonthYearDateInputTestPage</title>
    </head>
    <body>
        <h1 id="h2">DayMonthYearDateInputTestPage</h1>

        <div t:type="myC/MyComponent" t:id="myComponent" t:myParam="myParam"/>
    </body>
</html>

myComponentTest.java

import Perso.monAppli.demo.DemoModule;

import com.formos.tapestry.testify.core.ForComponents;
import com.formos.tapestry.testify.core.TapestryTester;
import com.formos.tapestry.testify.junit3.TapestryTest;

public class MyComponentTest extends TapestryTest {

    @ForComponents(value="myParam")
    private String myParam;

    private static final TapestryTester SHARED_TESTER = new TapestryTester("app", DemoModule.class);

    public MyComponentTest() {
        super(SHARED_TESTER);
    }

    @Test
    public void testElementIsOnPage() {
        Document page = tester.renderPage("demo/MyComponentDemo");
        System.out.println("### HTML " + page.getRootElement().getChildMarkup());
        Assert.assertTrue(page.getRootElement().getChildMarkup().contains("testMyParam"));
    }
}

Нужно ли создавать службу для передачи значения моему компоненту?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 12 апреля 2011

Я не уверен в этом, но вы пытались изменить имя «myParam»?

Например:

myComponentDemo.java

@Inject
@Service("myParamService")
@Property
private String myParamValue;

myComponentDemo.tml

<div t:type="myC/MyComponent" t:id="myComponent" t:myParam="myParamValue"/>

myComponentTest.java

@ForComponents("myParamService")
private String myParam;
...