我有测试检查方法是否会引发.git/ref/head/mastar
当metod直接使用SystemExit
时,test会正确捕获它。问题在于以下代码:
sys.exit()
程序已终止,但测试失败并显示def module(x):
try:
int(x)
except ValueError:
print('Wrong value')
sys.exit()
我不明白什么是错的。即使我将最后一行更改为AssertionError: SystemExit not raised
,测试也会失败。
//修改
这是我的测试声明:
raise SystemExit
答案 0 :(得分:0)
当<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark" android:orientation="vertical"
android:gravity="bottom">
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:src="@android:drawable/sym_def_app_icon" android:id="@+id/imageView" />
<TextView android:layout_width="match_parent" android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing" android:text="Android Studio"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="android.studio@android.com" android:id="@+id/textView" />
</LinearLayout>
用作上下文管理器时,它应该只接受一个输入参数 - 一种要捕获的异常。
其他参数只能在表单中使用:
assertRaises
以下代码:
self.assertRaises(exc_type, callable, *args, **kwargs)
产生输出:
import sys
import unittest
def f(x):
try:
int(x)
except ValueError:
print('Wrong value')
sys.exit()
class MyTests(unittest.TestCase):
def test_id_not_number(self):
with self.assertRaises(SystemExit) as cm:
f('id')
self.assertEqual(cm.exception, "Error")
unittest.main()