code: def testComponentSpec_MissingArguments(self):
      class SimpleComponentSpec(ComponentSpec):
          PARAMETERS = {
              "x": ExecutionParameter(type=int),
              "y": ExecutionParameter(type=int, optional=True),
          }
          INPUTS = {"z": ChannelParameter(type=_Z)}
          OUTPUTS = {}
  
      with self.assertRaisesRegex(ValueError, "Missing argument"):
          SimpleComponentSpec(x=10)
  
      with self.assertRaisesRegex(ValueError, "Missing argument"):
          SimpleComponentSpec(z=channel.Channel(type=_Z))
  
      # Okay since y is optional.
      SimpleComponentSpec(x=10, z=channel.Channel(type=_Z))
  
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 9 for calling the ComponentSpecTest obj's underlying member method code with example usage: obj.testComponentSpec_MissingArguments() without return types