我想检查一下测试是否用特定类的参数调用了函数。
class Foo:
...
我找到了ock.ANY,但是在那里我无法通过任何课程。想要的是:
test_mock.assert_called_with("expected string", ANY(spec=Foo))
答案 0 :(得分:0)
您可以使用班级名称来检查班级名称:
private void Page1_Loaded(object sender, RoutedEventArgs e)
{
string uri = this.NavigationService.CurrentSource.ToString();
string querystring = uri.ToString().Substring(uri.IndexOf('?'));
System.Collections.Specialized.NameValueCollection parameters = System.Web.HttpUtility.ParseQueryString(querystring);
string val = parameters["IP"];
if (!string.IsNullOrEmpty(val))
{
MessageBox.Show(val, "Information", MessageBoxButton.OK);
}
}
答案 1 :(得分:0)
我用自定义匹配器解决了它。
class TypeMatcher:
def __init__(self, expected_type):
self.expected_type = expected_type
def __eq__(self, other):
return isinstance(other, self.expected_type)
然后像这样测试它:
test_mock.assert_called_with("expected string", TypeMatcher(Foo))
答案 2 :(得分:0)
使用其他测试。 call_args
属性包含传递给调用的参数;您可以提取所需的参数,然后检查其类型。
# E.g. test_mock(1,"foo", bar=9) gives
# test_mock.call_args == ((1, "foo"), {"bar": 9})
assert isinstance(test_mock.call_args[1][1], Foo)