其他分享
首页 > 其他分享> > Hamcrest使用

Hamcrest使用

作者:互联网

简介

安装

`pip install Pyhamcrest`

示例

from hamcrest import *
import unittest

class HamcrestTest(unittest.TestCase):
    def testEquals(self):
        theString = 'Hello Hamcrest'
        myString = 'Hello Hamcrest'
        # assert_that函数是一个用于进行测试断言的方法
        assert_that()
        assert_that(theString, equal_to(myString))


if __name__ == '__main__':
    unittest.main()

Hamcrest在python中提供的API:

对象

数字

文本

逻辑

序列

字典

装饰器

这些匹配器中的许多参数不仅接受匹配值,还接受另一个匹配器,因此可以组合匹配器以提高灵活性。 例如,only_contains(less_than(5))将匹配每个小于5项目的任何序列。

自定义匹配器

def testDateIsOnASaturday(self):
    d = datetime.date(2008, 4, 26)
    assert_that(d, is_(on_a_saturday()))
from hamcrest.core.base_matcher import BaseMatcher
from hamcrest.core.helpers.hasmethod import hasmethod


class IsGivenDayOfWeek(BaseMatcher):
    def __init__(self, day):
        self.day = day  # Monday is 0, Sunday is 6

    def _matches(self, item):
        if not hasmethod(item, "weekday"):
            return False
        return item.weekday() == self.day

    def describe_to(self, description):
        day_as_string = [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday",
            "Sunday",
        ]
        description.append_text("calendar date falling on ").append_text(
            day_as_string[self.day]
        )


def on_a_saturday():
    return IsGivenDayOfWeek(5)

标签:__,匹配,self,给定,使用,day,Hamcrest
来源: https://www.cnblogs.com/xxiaow/p/16397855.html