如何检查py.test灯具中的行为?

时间:2016-01-17 14:01:19

标签: python mocking pytest

在C#中,我可以使用Moq来创建模拟对象,我可以用它来检查是否有东西被调用。在此示例中,我将检查MyModelClass.Bar()函数是否至少调用IMyInterface.Foo()一次:

[TestMethod]
public void TestBar() {
    var mock = new Mock<IMyInterface>();
    var systemUnderTest = new MyModelClass(mock.Object);
    systemUnderTest.Bar();

    // Let the test fail, if Foo() was not called at least once
    mock.Verify(x => x.Foo(), Times.AtLeastOnce());
}

使用pytest在Python中编程,实现相同的最佳方法是什么?或者我应该使用其他测试框架来做这样的事情吗?

1 个答案:

答案 0 :(得分:0)

我刚刚发现Mock,这是一个测试库,可以满足我的需求:

from mock import Mock

def test_bar():
    mock = Mock()
    system_under_test = MyModelClass(mock)
    system_under_test.bar()
    mock.foo.assert_called_once_with()