IFoo
{
string abc();
string def();
}
Foo: IFoo
{
string abc()
{
def();
}
string def()
{
}
}
Mymainclass
{
private IFoo _foo;
public Mymainclass():this(new Foo())
{}
public Mymainclass(IFoo foo)
{
_foo = foo;
}
string mainmethod()
{
_foo.abc();
}
}
[TestClass]
public class Mymainclasstester
{
Mymainclass mainclass;
Mock<IFoo> mifoo;
[TestInitialize]
public void TestInitialize()
{
mifoo = new Mock<IFoo>();
mifoo.Setup(x => x.def(It.IsAny<string>())).Returns("abc");
mainclass = new Mymainclass(mifoo.Object);
}
[TestMethod]
public void testmethod()
{
mainclass.mainmethod();
}
}
无法使用接口
存档所需内容。实际上,您可以通过嘲弄abc
来调用def
,这似乎有点尴尬:
mock.Setup(x => x.abc()).Returns(() => mock.Object.def());
虽然我看不出这里有什么意义,但您可以只模拟abc
...
使用mock存档所需内容的唯一方法是使用实际的class
和callbase
特性。
public class Foo : IFoo
{
public virtual string abc() //methods have to be virtual to be mockable
{
return def();
}
public virtual string def() //methods have to be virtual to be mockable
{
return "123";
}
}
//setup
var mock = new Mock<Foo>();
mock.Setup(x => x.def()).Returns("abc");
mock.Setup(x => x.abc()).CallBase();
mock.Object.abc(); // "abc"
我来自爪哇,在那里我很容易用间谍和mockito做这种事情。我意识到Moq不支持spie,但是如果您设置了callbase,那么在调用其他实际方法的同时,只在类中嘲弄一个方法似乎是可行的。 新测试的Legacy类,尝试测试Split()方法。将Split方法中的using中的显式filestream创建重构为它自己的GetReaderStream方法,这样我就可以模拟它了(我一开始是受保护的,但我
问题内容: 我有一个正在测试的类,该类具有依赖关系的另一个类(该类的实例被传递给CUT的init方法)。我想使用Python Mock库来模拟此类。 我所拥有的是这样的: 没关系,但是“ methodfromdepclass”是参数化的方法,因此我想创建一个单独的模拟对象,其中根据将哪些参数传递给methodfromdepclass来返回不同的值。 我想要这种参数化行为的原因是,我想创建Class
我需要用mockito测试一个类。下面是课堂和Mockito测试。 dbBuilder。parse(file)总是返回null,因为它调用几个类,这些类反过来又调用jar文件中的几个方法。尽管我嘲笑了所有这些,但它总是返回null。我无法跟踪空值来自何处。我试图压制这些方法,但仍然没有用。 由于此方法调用返回null,因此doc值为null。因此文档调用方法并运行mockito测试失败,。这个方法
7.2.3 对象方法的调用 一旦创建了对象,就可以通过向对象发消息来调用对象的方法。消息的格式如下: <对象>.<方法>(<实参>) 其含义是请求<对象>执行<方法>,方法定义中列出的形式参数由<实参>提供。 例如,接着前面的例子执行如下语句: >>> p1.whatName() My name is Lucy >>> p2.whatName() My name is Tom >>> p2.ho
但是当我的method2被调用时,AOP功能没有被调用,即没有调用AOPLogger类的checkAccess方法。 我错过什么了吗?
本文向大家介绍python实现调用其他python脚本的方法,包括了python实现调用其他python脚本的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现调用其他python脚本的方法,分享给大家供大家参考。具体方法如下: 该实例调用当前目录下的md5get.py脚本。代码如下: 希望本文所述对大家的Python程序设计有所帮助。