You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Chinmay Kulkarni (Jira)" <ji...@apache.org> on 2019/08/20 00:43:00 UTC

[jira] [Updated] (PHOENIX-1295) Add testing utility for table creation, population, and checking query results

     [ https://issues.apache.org/jira/browse/PHOENIX-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chinmay Kulkarni updated PHOENIX-1295:
--------------------------------------
    Labels: phoenix-hardening  (was: )

> Add testing utility for table creation, population, and checking query results
> ------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1295
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1295
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Gabriel Reid
>            Priority: Major
>              Labels: phoenix-hardening
>         Attachments: PHOENIX-1295-WIP1.patch
>
>
> Mostly due to the way the JDBC is structured in general, it's relatively painful to create a simple test case that just creates a simple table, populates it with a couple of rows, and checks the output of a query.
> Adding to this is the fact that there isn't really a single "right way" to write simple unit tests in Phoenix. Some tests try to cleanly close statements, ResultsSets, and Connections, while others don't. New tests of this sort are often created by first copying an existing test.
> The end results is that a couple of simple test cases to test a new built-in function often end up being mostly wresting with JDBC, with the actual test case getting largely hidden in the noise.
> The purpose of this ticket is to propose a utility to simplify creating tables, populating them, and verifying the output.
> The general API I have in mind is would look like this:
> {code}
>      QueryTestUtil.on(jdbcUrl)
>           .createTable("testtable",
>               "id integer not null primary key",
>               "name varchar")
>           .withRows(
>               1, "name1",
>               2, "name2",
>               3, "othername")
>           .verifyQueryResults(
>               "select id, name from testtable where name like 'name%'",
>               1, "name1",
>               2, "name2");
> {code}
> The intention is to make it much less painful to write tests, and also to replace as enough existing test code to use this pattern so that new tests being created based on existing code will also follow this pattern.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)