[ https://issues.apache.org/jira/browse/BEAM-85?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ben Chambers updated BEAM-85: ----------------------------- Description: We should validate two things: # DataflowAssert is not added to a pipeline that has already been run. # The pipeline is run after the DataflowAssert is added. If either of these are not validated, then it is possible that the test doesn't actually verify anything. This code should throw an assertion error or fail in some other way. {code} Pipeline p = TestPipeline.create(); PCollection<Boolean> value = p.apply(Create.of(Boolean.FALSE)); p.run(); DataflowAssert.thatSingleton(value).isEqualTo(true); {code} but it would pass silently. similarly, this code wills pass silently: {code} Pipeline p = TestPipeline.create(); PCollection<Boolean> value = p.apply(Create.of(Boolean.FALSE)); DataflowAssert.thatSingleton(value).isEqualTo(true); {code} was: It is important that assert is applied to pipeline before the pipeline is run, otherwise it does not actually execute the test. This code should throw an assertion error or fail in some other way. {code} Pipeline p = TestPipeline.create(); PCollection<Boolean> value = p.apply(Create.of(Boolean.FALSE)); p.run(); DataflowAssert.thatSingleton(value).isEqualTo(true); {code} but it would pass silently. > DataflowAssert (BeamAssert ;) needs sanity check that it's used correctly > ------------------------------------------------------------------------- > > Key: BEAM-85 > URL: https://issues.apache.org/jira/browse/BEAM-85 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core > Reporter: Daniel Halperin > > We should validate two things: > # DataflowAssert is not added to a pipeline that has already been run. > # The pipeline is run after the DataflowAssert is added. > If either of these are not validated, then it is possible that the test > doesn't actually verify anything. > This code should throw an assertion error or fail in some other way. > {code} > Pipeline p = TestPipeline.create(); > PCollection<Boolean> value = p.apply(Create.of(Boolean.FALSE)); > p.run(); > DataflowAssert.thatSingleton(value).isEqualTo(true); > {code} > but it would pass silently. > similarly, this code wills pass silently: > {code} > Pipeline p = TestPipeline.create(); > PCollection<Boolean> value = p.apply(Create.of(Boolean.FALSE)); > DataflowAssert.thatSingleton(value).isEqualTo(true); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)