code: def testConstruct(self):
      model = standard_artifacts.Model()
      serving_spec = infra_validator_pb2.ServingSpec()
      validation_spec = infra_validator_pb2.ValidationSpec()
      infra_validator = component.InfraValidator(
          model=channel_utils.as_channel([model]),
          serving_spec=serving_spec,
          validation_spec=validation_spec,
      )
  
      # Check channels have been created with proper type.
      self.assertEqual(
          standard_artifacts.Model,
          infra_validator.inputs[
              standard_component_specs.MODEL_KEY
          ].type,
      )
      self.assertEqual(
          standard_artifacts.InfraBlessing,
          infra_validator.outputs[
              standard_component_specs.BLESSING_KEY
          ].type,
      )
  
      # Check exec_properties have been populated.
      self.assertIn(
          standard_component_specs.SERVING_SPEC_KEY,
          infra_validator.exec_properties,
      )
      self.assertIn(
          standard_component_specs.VALIDATION_SPEC_KEY,
          infra_validator.exec_properties,
      )
  
file_path: tfx/tfx/components/infra_validator/component_test.py
imports: import tensorflow
  from tfx.components.infra_validator import component
  from tfx.proto import infra_validator_pb2
  from tfx.types import channel_utils
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
label_desc: Use image node_id 1 for calling the ComponentTest obj's underlying member method code with example usage: obj.testConstruct() without return types