1

テストしたいコードがあります:

from random import randint

class End(object):
          def __init__(self):
             self.quips=['You dead', 'You broke everything you can','You turn you head off']

          def play(self):
                print self.quips[randint(0, len(self.quips)-1)]
                sys.exit(1)

accept_raises を使用して終了するかどうかを確認するにはどうすればよいですか?

def test_End():
    end=End().play()
    assert_raises(what should I put here)
4

2 に答える 2

1

@raisesデコレータの方が好き

from nose.tools import raises

@raises(SystemExit)
def test_End():
    end=End().play()
于 2013-08-15T09:21:56.670 に答える
0

assertRaisesSystemExitで例外をキャッチできます:

with self.assertRaises(SystemExit):
    End().play()

またはmocksys.exit経由でパッチします:

with patch.object(sys, 'exit') as mock_method:
    End().play()
    self.assertTrue(mock_method.called)
于 2013-08-12T08:52:28.147 に答える