首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试接口和方法调用

单元测试接口和方法调用
EN

Stack Overflow用户
提问于 2010-06-29 05:10:49
回答 1查看 1.4K关注 0票数 1

有两个测试场景我不太清楚。乍一看,这两种方法都会产生非常脆弱的测试。

首先,应该在什么时候对接口进行单元测试(即验证接口是否具有设置的签名)?

其次,什么时候应该“测试序列图”(我刚刚编造的一个术语)-意思是验证对适当的对象进行了调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-29 05:16:16

测试接口意味着您应该只测试公共接口上可用的成员。换句话说,不要测试私密的东西。将被测单元作为黑盒。这使得测试更具可维护性,因为您可以在不破坏测试的情况下更改实现细节。测试还将表达被测单元的优点,而不是它是如何实现的。

在其他对象上进行的测试调用称为“交互测试”(不要与集成测试混淆,在集成测试中不模拟其他对象)。当被测单元调用另一个对象上的方法而不依赖它时,就需要进行交互测试。我试着用一个例子来解释它。

需要测试的方法如下:

代码语言:javascript
复制
public decimal CalculateTax(Order order);

让我们假设此方法需要调用

代码语言:javascript
复制
TaxRules TaxRuleProvider.GetRules(Country country)

它返回一些本地规则。当它不调用它时,它将无法返回正确的结果。它会遗漏重要的信息。您不需要测试它是否已被调用,只需测试结果即可。

另一种方法:

代码语言:javascript
复制
public void StoreThingy(Thingy toBeStored);

它将调用

代码语言:javascript
复制
public void NotificationBroker.NotifyChanges(SomeChanges x);

StoreThingy不依赖于通知。你不能决定它的接口是否发送通知。你需要通过交互测试来测试它。

通常,交互测试的方法返回void。在这个类别中有各种事件和通知,以及像Commit()这样的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3136147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档