![]() |
1
4
使用 dependency injection .
或者,最好在对象的构造函数中设置satservice字段(因此,构造函数要求设置satservice)。如果你这样做,测试会更容易。 编辑: 对不起,我在这里详细说明。上面代码中的内容是一个耦合的依赖项,代码在这里创建它使用的对象。依赖注入或控制反转(IOC)模式,会让您断开依赖。(或者简单地说,不要称之为“新的”——让其他东西来做——一些你可以在消费者之外控制的东西。) 有几种方法可以做到这一点,它们显示在下面的代码中(注释解释):
上面是一个完整的控制台程序,您可以运行和播放来查看它的工作原理。我试着保持简单,但你有什么问题可以问我。 第二次编辑: 从评论中,可以清楚地看出这是一个操作需求,而不是一个测试需求,因此实际上它是一个缓存。下面是一些适用于预期目的的代码。同样,下面的代码是一个完整的工作控制台程序。
希望这有帮助。祝你好运! |
![]() |
2
0
当你说假电话,你只是在测试客户端吗? 您可以使用fiddler,截获请求并将本地XML文件返回给客户机。那就不要乱弄你的客户代码了。 |
![]() |
3
0
详细说明奥迪的回答 使用DI可以得到你想要的。很简单,您将创建一个接口,您的真实对象和模拟对象都可以实现该接口。
然后让getsatservice方法根据需要返回mocksatserivce或真正的satservice对象。 在这里,您将使用一个DI容器(一些存储具体类型映射接口的对象),用您想要的类型引导容器。因此,对于单元测试,您可以构造一个模拟容器,将mocksatservice注册为ifoo接口的实现者。 然后您将作为具体类型but接口的容器
然后在运行时,您只需更改容器,使其使用运行时类型而不是模拟类型进行引导,但您的代码将保持不变(因为您将所有内容都视为ifoo而不是satservice) 这有道理吗? |
![]() |
4
0
随着时间的推移,我发现这样做的一个有趣的方法是提取一个接口并创建一个包装类。这很适合IOC容器,而且没有容器也可以正常工作。 测试时,创建通过假服务的类。当正常使用它时,只需调用空构造函数,它可以简单地构造一个提供程序或使用配置文件解析一个提供程序。
|
![]() |
user755806 · 从Rest服务返回JSON响应? 7 年前 |