测试以下内容的最佳方式是什么:
我们有一个大的复杂类,我们称之为ValueSetter
,它接受字符串,从中获取一些数据并将这些数据设置为几个变量,如
message_title
,message_content
,message_number
为了执行此操作,它使用另一个名为Rule
的类,其中是使用正则表达式描述的特定情况的规则。
需要什么:
因为在每个Rule
中大约有5个案例要匹配,我们将分别对它们进行测试。
到目前为止,我们只需断言特定Rule
在每种情况下都返回正确的字符串。在这种情况下最好的方法是什么?
答案 0 :(得分:1)
尝试在自己的Test中测试Rule和ValueSetter。在您的问题中描述的5个案例中测试规则是否真正符合您的想法。然后,当您测试ValueSetter时,只需假设Rule执行您的想法并直接设置为message_title
,message_content
和message_number
。因此,您应该按照规则应该完成的方式注入信息。
这是你通常在单元测试中所做的事情。为了测试一切是否一致,您通常会进行功能测试,从更高/用户级别测试应用程序。
如果在不使用规则的情况下无法构造ValueSetter,则只需为从ValueSetter继承并覆盖__init__
方法的测试创建一个新类。通过这种方式,您将能够得到一个空白的'对象并按预期直接设置成员变量。