私は Arquillian Warp を使い始めたばかりで、つまずきにぶつかったようです。
登録ページの基本的な UI テストがあります
@WarpTest
@RunWith(Arquillian.class)
public class TestProfileEdit extends AbstractUsersTest {
@Drone
FirefoxDriver browser;
@Page
EditProfilePage editProfilePage;
@Page
LoginPage loginPage;
@ArquillianResource
private URL baseURL;
@Deployment
public static Archive<?> createLoginDeployment() throws IOException {
// trimmed for brevity
}
@Before
public void setup() throws MalformedURLException{
final URL loginURL = new URL(baseURL, "login.jsf");
browser.navigate().to(loginURL);
loginPage.login("test@domain.com", "password");
final URL pageURL = new URL(baseURL, "profile/edit.jsf");
System.out.println(pageURL.toExternalForm());
browser.navigate().to(pageURL);
}
@After
public void tearDown() {
browser.manage().deleteAllCookies();
}
@Test
@RunAsClient
public void testSaveData() {
editProfilePage.getDialog().setFirstName("Test First Name");
Warp.execute(new ClientAction() {
@Override
public void action() {
editProfilePage.getDialog().save();
}
}).verify(new TestProfileOnServer());
}
@SuppressWarnings("serial")
public static class TestProfileOnServer extends ServerAssertion {
@Inject
private EntityManager em;
@Inject
private Identity identity;
@Inject
Credentials credentials;
@AfterPhase(Phase.RENDER_RESPONSE)
public void testSavedUserProfile() {
System.out.println("RUNNING TEST");
String username = identity.getUser().getId();
TypedQuery<UserProfile> q = em.createQuery(
"SELECT u from UserProfile u where u.userIdentity.name like :username", UserProfile.class);
UserProfile p;
p = q.setParameter("username", username).getSingleResult();
assertEquals("Test First Name", p.getFirstName());
}
}
}
私は testSavedUserProfile() メソッドでさまざまな組み合わせを試しましたが、それをトリガーするのはまったく運がありませんでした。
テストは常に終了します
java.lang.IllegalStateException: java.util.concurrent.ExecutionException: org.jboss.arquillian.warp.client.execution.AssertionHolder$ServerResponseTimeoutException
開かれたFirefoxウィンドウで、ページが投稿され、正しくリダイレクトされるのを見ることができます。リダイレクトしないようにしようとしましたが、何も役に立ちませんでした。
基本的でシンプルなものが欠けているように感じますが、何がわかりません!
どんな助けでも大歓迎です。
ありがとう。