单元测试示例

使用的是Xcode5,在创建工程的时候会默认创建一个测试文件夹。名字是:工程名+Tests

文件夹中有默认的文件 工程名+Tests.m  可以不用这个文件 。

测试类主要用于model类数据类的,下面以测试Person类为例。

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) int age;

@end

创建自定义测试类的方法:command + n 选择 objective-C test case class 点击next。名称写 PersonTests  然后创建的到PersonTests.m文件:

- (void)setUp
{
    [super setUp];
    // Put setup code here. This method is called before the invocation of each test method in the class.
}

- (void)tearDown
{
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    [super tearDown];
}

- (void)testExample{

}

把testExample方法里的默认实现代码删掉。(没有用)

然后导入Person.h头文件

然后就可以添加断言,写Person的测试方法了。比如测试Person里 age的setter和getter方法

自定义一个测试方法叫 testAge。

- (void)testAge
{
    Person *p = [[Person alloc] init];
    p.age = 17;
    XCTAssertTrue(p.age >= 18, @"年龄不得小于18岁");
    
    p.age = 68;
    XCTAssertFalse(p.age > 60, @"年龄不得大于60岁");

}

运行测试。注意:在程序运行状态下是不能测试的。如果运行,先关闭。然后长按run按钮。选择Test就可以运行测试类了

如果不出意外的话,上面两个断言 XCTAssertTure和XCTAssertFalse处都会亮红灯。

在Person的实现方法中重写代码如下就变绿灯了

-(void)setAge:(int)age
{
    if (_age != age) {
        if (age > 60) {
            _age = 60;
        }else if(age < 18){
            _age = 18;
        }else{
            _age = age;
        }
    }
}


参考网址: http://www.cnblogs.com/liufan9/archive/2013/06/14/3135414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为你提供一个简单的C语言单元测试示例。假设我们有一个名为 `addition.c` 的源文件,其中包含一个名为 `add` 的函数,用于将两个整数相加并返回结果。我们希望编写一个单元测试,确保该函数能够正确地运行。 首先,我们需要使用一个单元测试框架来编写测试代码。在这里,我们将使用CUnit框架作为示例。确保你已经安装了CUnit。 下面是一个示例的CUnit单元测试代码: ```c #include <CUnit/CUnit.h> #include <CUnit/Basic.h> #include "addition.h" // 包含我们要测试的头文件 void testAddition(void) { CU_ASSERT(add(2, 3) == 5); CU_ASSERT(add(-10, 5) == -5); CU_ASSERT(add(0, 0) == 0); // 添加更多的测试用例 } int main() { CU_initialize_registry(); CU_pSuite suite = CU_add_suite("Addition", NULL, NULL); CU_add_test(suite, "testAddition", testAddition); CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); CU_cleanup_registry(); return 0; } ``` 在这个示例中,我们首先包含了CUnit的头文件。然后,我们包含了要测试的函数 `add` 所在的头文件。 `testAddition` 函数是一个具体的测试用例。它使用 `CU_ASSERT` 宏来断言函数 `add` 的返回值是否符合预期。你可以根据需要添加更多的测试用例。 在 `main` 函数中,我们初始化CUnit框架并创建一个测试套件。然后,我们将 `testAddition` 函数添加到测试套件中。通过调用 `CU_basic_set_mode` 函数,我们设置测试运行时的模式为 `CU_BRM_VERBOSE`,这样在运行测试时将输出详细的结果。 最后,我们运行测试并清理CUnit框架的资源。 请注意,这只是一个简单的示例,实际的单元测试可能需要更复杂的结构和断言。此外,你需要自己编写被测试函数的实现代码。 希望这个示例能够帮助你开始编写C语言的单元测试!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值