gpt4 book ai didi

ios - OCUnit的测试用例类中是否需要在public接口(interface)中定义测试方法

转载 作者:行者123 更新时间:2023-11-28 20:21:51 25 4
gpt4 key购买 nike

使用 OCUnit 编写单元测试时,可以省略公共(public)接口(interface) (.h) 中的测试方法定义。但是 OCUnit 关于公共(public)接口(interface)中测试方法定义的最佳实践是什么?

ModelTest.h(未定义测试方法)

@interface ModelTest : SenTestCase

@end

模型测试.m

@implementation ModelTest : SenTestCase
- (void) testCreation {
...
}
@end

ModelTest.h(带有测试方法定义)

@interface ModelTest : SenTestCase
- (void) testCreation;
@end

我个人认为最好在公共(public)接口(interface)中反射(reflect)一个公共(public)测试方法定义。但最佳做法是什么?是否存在我们无法避免在公共(public)接口(interface)中声明这些方法的情况?

最佳答案

非测试类很少依赖测试类;没有人会 #include 您的 ModelTest 声明。因此,封装或公开测试方法不会有太多好处。无论如何,测试运行者都会看到它们。

如果您从头文件中生成文档,那么在 .h 文件中声明它们可能会有用。

有时,您可能会定义 SenTestCase 的子类,为您的测试添加特殊的辅助方法。如果这样做,您可能不想在父类(super class)上公开测试方法。但是,最好完全从父类(super class)中删除测试用例,将父类(super class)视为仅包含辅助方法的抽象接口(interface)。

关于ios - OCUnit的测试用例类中是否需要在public接口(interface)中定义测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15623695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com