code: def testOptionalOutputs(self):
      class SpecWithOptionalOutput(ComponentSpec):
          PARAMETERS = {}
          INPUTS = {}
          OUTPUTS = {"x": ChannelParameter(type=_Z, optional=True)}
  
      optional_not_specified = SpecWithOptionalOutput()
      self.assertNotIn("x", optional_not_specified.outputs.keys())
      self.assertTrue(optional_not_specified.is_optional_output("x"))
      optional_specified = SpecWithOptionalOutput(
          x=channel.Channel(type=_Z)
      )
      self.assertIn("x", optional_specified.outputs.keys())
  
imports: import json
  import sys
  from typing import Dict, List
  import unittest
  import tensorflow
  from tfx.dsl.placeholder import placeholder
  from tfx.proto import example_gen_pb2
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import component_spec
  from tfx.types.component_spec import ChannelParameter
  from tfx.types.component_spec import ComponentSpec
  from tfx.types.component_spec import ExecutionParameter
  from tfx.types.standard_artifacts import Examples
  from tfx.utils import proto_utils
  from google.protobuf import json_format
  from google.protobuf import text_format
label_desc: Use image node_id 11 for calling the ComponentSpecTest obj's underlying member method code with example usage: obj.testOptionalOutputs() without return types