如何检查 py.test 装置中的行为?

How to check behavior in py.test fixtures?

在 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 中编程,实现相同目标的最佳方法是什么?或者我应该使用其他测试框架来做类似的事情吗?

我刚刚发现 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()