小编Dip*_*iya的帖子

self.assertRaises 作为上下文管理器,但 msg 参数未按预期工作

请检查以下代码:

import unittest


CORRECT_MESSAGE = 'Correct message'
WRONG_MESSAGE = 'Wrong message'


def fn():
    raise KeyError(CORRECT_MESSAGE)


class Test(unittest.TestCase):
    def test(self):
        # I am expecting this test to fail as the msg I am
        # checking is WRONG_MESSAGE, and not CORRECT_MESSAGE.
        with self.assertRaises(KeyError, msg=WRONG_MESSAGE):
            fn()


unittest.main()
Run Code Online (Sandbox Code Playgroud)

正如评论中提到的,我预计此测试会失败,因为我正在检查的消息 ( WRONG_MESSAGE) 不正确,但测试通过了。

我缺少什么?我已经检查过:assertRaises(exception, *, msg=None)

python python-3.x python-unittest

3
推荐指数
1
解决办法
1348
查看次数

在算术表达式C++中输入类型

    int a = 5 , b = 2 ;
    double ans1 = a / b ; // ans1 = 2
    cout << setprecision ( 4 ) << fixed << ans1 << endl ;

    unsigned short int c = USHRT_MAX , d = USHRT_MAX ;
    unsigned int ans2 = c + d ; // ans2 = 131070 
    cout << ans2 ;
Run Code Online (Sandbox Code Playgroud)

评估(a/b)时会发生什么?

1)结果首先存储在int(RHS上的变量类型)然后转换为64位double(LHS上的变量类型)然后存储在ans1或第一个变量中转换为64位double(变量类型on LHS)然后/发生?

2)如果首先在RHS上评估为变量类型,那么第二个如何打印正确的ans(因为ans超出了unsigned short int的限制)

c++

0
推荐指数
1
解决办法
265
查看次数

Python3:枚举函数中的start参数如何工作?

我有一个清单。我想从中处理列表中的项目variable starting point

lines = ["line 0", ..., "line 25", ...]
cursor = 25

for i, line in enumerate(lines, start=cursor):
    print("cursor is at:", cursor)
    print("start line is:", lines[cursor])
    print("actual line is:", line)
Run Code Online (Sandbox Code Playgroud)

输出:

cursor is at: 25
start line is: line 25
actual line is: line 0
...
Run Code Online (Sandbox Code Playgroud)

我希望enumeratecursor这里开始,但是它从开始0


我敢肯定我误解了一些东西,但是我真的很想了解如何enumerate改进我的Python。

python list enumerate python-3.x

0
推荐指数
1
解决办法
88
查看次数

如何正确使用 self.assertRaisesRegex 作为上下文管理器?

请检查以下代码:

import unittest


def fn():
    raise KeyError('my message')


class Test(unittest.TestCase):
    def test_passes(self):
        with self.assertRaisesRegex(KeyError, 'my message'):
            fn()

        with self.assertRaisesRegex(KeyError, 'my'):
            fn()

    def test_fails(self):
        # Why does this test fail?
        # Isn't '^my message$' a valid regex?
        # How do I check if the message is exactly 'my message'?
        with self.assertRaisesRegex(KeyError, '^my message$'):
            fn()


unittest.main()
Run Code Online (Sandbox Code Playgroud)

在输出中,我收到以下测试消息test_fails

AssertionError:“^我的消息$”与“'我的消息'”不匹配


我缺少什么?


正如评论中提到的,这些是我的问题:

  • 为什么这个测试会失败?
  • 不是'^my message$'有效的正则表达式吗?
  • 如何检查该消息是否是exactly 'my message'

python python-3.x python-unittest

0
推荐指数
1
解决办法
7700
查看次数

标签 统计

python ×3

python-3.x ×3

python-unittest ×2

c++ ×1

enumerate ×1

list ×1