首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试只返回系统值的API?

如何测试只返回系统值的API?
EN

Stack Overflow用户
提问于 2019-03-13 15:04:27
回答 1查看 47关注 0票数 0

比方说,我们有一个例程

代码语言:javascript
复制
int unw_getcontext(unw_context_t *ucp)

The unw_getcontext() routine initializes the context structure pointed to by ucp with the machine-state of the call-site. The exact set of registers stored by unw_getcontext() is platform-specific

对于这样的例程,单元测试必须是什么?当然,我可以使用一些系统调用来获取CPU寄存器之类的东西,然后将其与例程返回的内容进行比较。但是,对于单元测试来说,这似乎是一项非常繁重的工作。关于测试这样的API,测试理论是怎么说的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 15:38:42

我想说的是,这更多地取决于上下文。

你应该测试你所依赖的或者你在公共API中承诺的所有东西(也隐藏所有未测试的东西)。

如果这个方法是你的库的一部分,你应该确保它能做你在文档中所说的一切。也就是说,将寄存器设置为特定值,并验证函数是否正确返回它们。

如果这是内部的,并且您只依赖于它的一部分,那么可以只测试这一部分,并修改文档,说明其他东西没有测试,也不应该使用(除非测试正确)。假设你只需要这个来获取指令指针,这样你就可以从代码的其他部分跳回来,然后只测试这部分行为。

我不会完全跳过测试。文档正确地指明了它有一些特定于平台的组件。如果有一个测试失败,如果代码需要一些在一些奇怪的架构上缺失的特定内容,那就太好了。它还可以作为一个很好的模板,供更具异国情调的架构的用户添加自己的测试,使代码总体上更加健壮。

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

https://stackoverflow.com/questions/55136156

复制
相关文章

相似问题

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