Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Ruby单元测试失败时更改变量_Ruby_Unit Testing_Testunit - Fatal编程技术网

当Ruby单元测试失败时更改变量

当Ruby单元测试失败时更改变量,ruby,unit-testing,testunit,Ruby,Unit Testing,Testunit,我在下面的代码中使用Ruby单元测试 assert_equal(x, 'strin') 我想改变一个变量,如果这个测试失败,测试应该仍然失败。我该怎么做? 我在python中也使用了以下代码 try: self.assertEqual(self.client.testString(''), '') except AssertionError, e: test_basetypes_fails = True raise AssertionError( e.args ) Ruby的单元

我在下面的代码中使用Ruby单元测试

assert_equal(x, 'strin')
我想改变一个变量,如果这个测试失败,测试应该仍然失败。我该怎么做? 我在python中也使用了以下代码

try:
  self.assertEqual(self.client.testString(''), '')
except AssertionError, e:
  test_basetypes_fails = True
  raise AssertionError( e.args )

Ruby的单元库中的
assert_equal
方法不会引发异常,因此您不能使用与python中相同的方法,但您想做的事情非常简单。您实际上只是在检查两个值的相等性,并在此基础上做一些事情:

if x == 'strin'
  # do something here when the "assert" succeeds
else
  test_basetypes_fails = true
  assert_equal(x, 'strin') # fail the test as normal
end

要点是直接使用
=
执行初始相等性检查,而不会使测试失败

Ruby的单元库中的
assert_equal
方法不会引发异常,因此您不能使用与python中相同的方法,但您想做的事情非常简单。您实际上只是在检查两个值的相等性,并在此基础上做一些事情:

if x == 'strin'
  # do something here when the "assert" succeeds
else
  test_basetypes_fails = true
  assert_equal(x, 'strin') # fail the test as normal
end

要点是直接使用
=
执行初始相等性检查,而不会使测试失败

Ruby的单元库中的
assert_equal
方法不会引发异常,因此您不能使用与python中相同的方法,但您想做的事情非常简单。您实际上只是在检查两个值的相等性,并在此基础上做一些事情:

if x == 'strin'
  # do something here when the "assert" succeeds
else
  test_basetypes_fails = true
  assert_equal(x, 'strin') # fail the test as normal
end

要点是直接使用
=
执行初始相等性检查,而不会使测试失败

Ruby的单元库中的
assert_equal
方法不会引发异常,因此您不能使用与python中相同的方法,但您想做的事情非常简单。您实际上只是在检查两个值的相等性,并在此基础上做一些事情:

if x == 'strin'
  # do something here when the "assert" succeeds
else
  test_basetypes_fails = true
  assert_equal(x, 'strin') # fail the test as normal
end
要点是直接使用
=
执行初始相等性检查,而不会使测试失败

Ruby的
test/unit
库中的
#assert_equal
方法对失败的断言产生
test::unit::AssertionFailedError
或(
Ruby 1.9.3或更高版本中的MiniTest::Assertion
),因此:

begin
  assert_equal(x, 'strin')
rescue Test::Unit::AssertionFailedError
  # whatever code
  raise
end
Ruby的
test/unit
库中的
#assert\u equal
方法会在失败的断言上引发一个
test::unit::AssertionFailedError
或(
MiniTest::Assertion
,在Ruby 1.9.3或更高版本中),因此:

begin
  assert_equal(x, 'strin')
rescue Test::Unit::AssertionFailedError
  # whatever code
  raise
end
Ruby的
test/unit
库中的
#assert\u equal
方法会在失败的断言上引发一个
test::unit::AssertionFailedError
或(
MiniTest::Assertion
,在Ruby 1.9.3或更高版本中),因此:

begin
  assert_equal(x, 'strin')
rescue Test::Unit::AssertionFailedError
  # whatever code
  raise
end
Ruby的
test/unit
库中的
#assert\u equal
方法会在失败的断言上引发一个
test::unit::AssertionFailedError
或(
MiniTest::Assertion
,在Ruby 1.9.3或更高版本中),因此:

begin
  assert_equal(x, 'strin')
rescue Test::Unit::AssertionFailedError
  # whatever code
  raise
end

我需要在最后得到相同的assert_equal(x,'strin')结果。我应该从这里提出什么呢?不带参数的raise会引发之前提出的异常,因此您将命名错误:未初始化的常量测试::单元::断言失败错误更新的Ruby答案我需要在最后得到相同的断言结果(x,'strin')。我应该从这里提出什么呢?不带参数的raise会引发之前提出的异常,因此您将命名错误:未初始化的常量测试::单元::断言失败错误更新的Ruby答案我需要在最后得到相同的断言结果(x,'strin')。我应该从这里提出什么呢?不带参数的raise会引发之前提出的异常,因此您将命名错误:未初始化的常量测试::单元::断言失败错误更新的Ruby答案我需要在最后得到相同的断言结果(x,'strin')。我应该从这里引发什么呢?没有参数的raise会引发之前引发的异常,因此您将引发NameError:uninitialized constant Test::Unit::AssertionFailedErrorUpdated answer for New ruby