我有一个python文件a.py
,其中包含两个类A
和B
.
class A(object):
def method_a(self):
return "Class A method a"
class B(object):
def method_b(self):
a = A()
print a.method_a()
Run Code Online (Sandbox Code Playgroud)
我想通过嘲笑method_b
在课堂上B
进行单元测试A
.以下是testa.py
用于此目的的文件内容:
import unittest
import mock
import a
class TestB(unittest.TestCase):
@mock.patch('a.A')
def test_method_b(self, mock_a):
mock_a.method_a.return_value = 'Mocked A'
b = a.B()
b.method_b()
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
我希望得到Mocked A
输出.但我得到的是:
<MagicMock name='A().method_a()' id='4326621392'>
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?
如何断言以下两个dataframes df1
和df2
是平等的吗?
import pandas as pd
df1 = pd.DataFrame([1, 2, 3])
df2 = pd.DataFrame([1.0, 2, 3])
Run Code Online (Sandbox Code Playgroud)
输出df1.equals(df2)
是False
.截至目前,我知道两种方式:
print (df1 == df2).all()[0]
Run Code Online (Sandbox Code Playgroud)
要么
df1 = df1.astype(float)
print df1.equals(df2)
Run Code Online (Sandbox Code Playgroud)
看起来有点凌乱.有没有更好的方法来进行这种比较?