Sorry, misunderstanding here:

I will try both suggestions from Stackoverflow and decide for one option.

Regarding your suggestion, Dan, I guess that is a new JIRA Improvement once I 
validated the parametrized testing with my test case, right?


> Am 25.05.2020 um 17:24 schrieb Carsten Schinzer 
> <cars...@dcs-verkaufssysteme.de>:
> 
> Thanks for the hint, Dan!
> 
> Also, I just came across this one:
> https://stackoverflow.com/questions/3361239/excluding-a-non-param-test-in-parameterized-test-class
>  
> <https://stackoverflow.com/questions/3361239/excluding-a-non-param-test-in-parameterized-test-class>
> 
> I certainly support running each of the parameter sets as an individual test, 
> i.e. test counters go up per set executed.
> I will try both suggestions, the one you suggested and the one from the link 
> above.
> 
> Warm regards
> 
> 
> Carsten
> 
> 
>> Am 25.05.2020 um 17:21 schrieb Daniel Watford <d...@foomoo.co.uk 
>> <mailto:d...@foomoo.co.uk>>:
>> 
>> Hi Carsten,
>> 
>> I don't know if there were any reasons historically that precluded use of
>> the parameterized test pattern, but I think it can be quite useful if you
>> are able to make use of it.
>> 
>> Another test class that could benefit is FlexibleStringExpanderTests where
>> the parameterized test pattern appears to have been implemented without
>> test library support.
>> 
>> A benefit of converting FlexibleStringExpanderTests would be that all the
>> various parameterized tests would contribute to the overall test count of a
>> build, rather than being rolled up as part of the public testParsing(),
>> testWithVerbosity() and testQuietly() methods.
>> 
>> Thanks,
>> 
>> Dan.
>> 
>> On Mon, 25 May 2020 at 15:43, Carsten Schinzer <
>> cars...@dcs-verkaufssysteme.de <mailto:cars...@dcs-verkaufssysteme.de>> 
>> wrote:
>> 
>>> Hello all,
>>> 
>>> 
>>> I find no other reference to org.junit.Parameterized in the code stack on
>>> trunk which indicates that no-one else has committed parameterized unit
>>> tests. I am asking because I have a test case where I would need that (I
>>> want to run all options for the CustRequestStatusType against the status
>>> check service an be sure it return the expected result) and when
>>> implementing I find that my IDE hints that „There is no default constructor
>>> available in class ‚org.apache.ofbiz.service.testtools.OFBizTestCase‘“.
>>> 
>>> 
>>> package org.apache.ofbiz.order
>>> 
>>> import org.apache.ofbiz.service.ServiceUtil
>>> import org.apache.ofbiz.service.testtools.OFBizTestCase
>>> import org.junit.Test
>>> import org.junit.runner.RunWith
>>> import org.junit.runners.Parameterized
>>> import org.junit.runners.Parameterized.Parameters
>>> 
>>> @RunWith(Parameterized)
>>> class CustRequestStatusTests extends OFBizTestCase {
>>>    private String status
>>>    private String expect
>>>    private String scenario
>>> 
>>>    @Parameters static scenarios() {[
>>>        ['CRQ_DRAFT',     'PASS', 'CustRequest status Draft expected to
>>> PASS'],
>>>        ['CRQ_SUBMITTED', 'PASS', 'CustRequest status Submitted expected
>>> to PASS'],
>>>        ['CRQ_ACCEPTED',  'PASS', 'CustRequest status Accepted expected to
>>> PASS'],
>>>        ['CRQ_REVIEWED',  'PASS', 'CustRequest status Reviewed expected to
>>> PASS'],
>>>        ['CRQ_PENDING',   'PASS', 'CustRequest status Pending expected to
>>> PASS'],
>>>        ['CRQ_COMPLETED', 'FAIL', 'CustRequest status Completed expected
>>> to FAIL'],
>>>        ['CRQ_REJECTED',  'PASS', 'CustRequest status Rejected expected to
>>> PASS'],
>>>        ['CRQ_CANCELLED', 'FAIL', 'CustRequest status Cancelled expected
>>> to FAIL'],
>>>    ]*.toArray()}
>>> 
>>>    public CustRequestStatusTests(String name, String status, String
>>> expect, String scenario) {
>>>        this.expect   = expect
>>>        this.scenario = scenario
>>>        this.status   = status
>>>        super(name)
>>>    }
>>> 
>>>    /* Testing custRequestStatusCheck Service Implementation
>>>    *
>>>    * available test data:
>>>    * (...)
>>>    *   <CustRequest custRequestId="9000" custRequestDate="2008-07-28
>>> 09:45:31.928" custRequestTypeId="RF_QUOTE" statusId="CRQ_ACCEPTED"
>>> fromPartyId="DemoCustomer" priority="9" custRequestName="Customer Request
>>> Usage" description="Demo CustRequest" productStoreId="9000"/>
>>>    *   <CustRequestItem custRequestId="9000" statusId="CRQ_ACCEPTED"
>>> custRequestItemSeqId="00001" productId="GZ-1001" story="This can be the
>>> longer story of an item on the customer request."/>
>>>    *
>>>    *  */
>>>    @Test void testCustRequestStatusCheckEmpty() {
>>>        Map input = [
>>>                custRequestId: '9001',
>>>        ]
>>>        Map result = dispatcher.runSync('checkStatusCustRequest', input)
>>>        assert ServiceUtil.isError(result)
>>>        // assert error message refers to certain text element
>>>    }
>>> 
>>>    @Test void testCustRequestStatusCheckWrongStatus() {
>>>        Map input = [
>>>                custRequestId: '9000',
>>>                statusId: this.status,
>>>        ]
>>>        Map result = dispatcher.runSync('checkStatusCustRequest', input)
>>>        if(this.expect == 'PASS') {
>>>            assert ServiceUtil.isSuccess(result)
>>>        } else {
>>>            assert ServiceUtil.isFailure(result)
>>>        }
>>>    }
>>> }
>>> 
>>> 
>>> 
>>> This hint certainly has to do with the implementation I need to do for
>>> such test cases using annotations to mark the class as @Parameterized,
>>> define the @Parameters and then mark the @Test that uses the parameters.
>>> 
>>> Before I dive too much into web search:
>>> - has anyone attempted this for OFBiz unit Testing? (And hence the reason
>>> why no implementation is avail)
>>> 
>>> Thanks for a hint :)
>>> Warm regards
>>> 
>>> 
>>> Carsten
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> -- 
>> Daniel Watford
> 

Reply via email to