类别@interface Class1 (Category1)


类别是为现有的类添加新方法的方式。利用object-c的动态运行时分配机制,可以为现有的类添加新的方法,这些新方法的Objective-C术语称为类别。
申明类别:
@interface NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber;
@end
实现:
@implementation NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber
{
unsigned int length = [self length];
return [NSNumber numberWithUnsignedInt : length];
}
@end
类别的局限性:无法向类中添加实例变量;名称冲突,即类别中的方法与现有的方法重名时,类别的方法将取代初始方法,从而无法再使用初始方法。
类别的作用: 
1、将类的实现分散到多个不同文件或多个框架中;
      如 @interface NSWindow(NSDrag)
            @interface NSWindow(NSKeyboardUI)
2、创建对私有方法的前项引用;
3、向对象添加非正式协议。
      创建NSObject的类别称为”创建一个非正式协议“。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是针对`ArticleService`的三个方法编写的测试用例示例: ```java import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.List; public class ArticleServiceTest { @Mock private ArticleRepository articleRepository; @InjectMocks private ArticleService articleService; @Before public void setup() { MockitoAnnotations.initMocks(this); } @Test public void testInsert() { // 创建模拟数据 Article article = new Article(); // 设置模拟行为 when(articleRepository.insert(article)).thenReturn(true); // 调用被测试方法 boolean result = articleService.insert(article); // 断言预期结果与实际结果是否一致 Assert.assertTrue(result); } @Test public void testFindAllArticle() { // 创建模拟数据 List<Article> expectedArticles = new ArrayList<>(); expectedArticles.add(new Article()); expectedArticles.add(new Article()); // 设置模拟行为 when(articleRepository.findAllArticle()).thenReturn(expectedArticles); // 调用被测试方法 List<Article> actualArticles = articleService.findAllArticle(); // 断言预期结果与实际结果是否一致 Assert.assertEquals(expectedArticles, actualArticles); } @Test public void testCountByStatus() { // 创建模拟数据 int status = 1; int expectedCount = 5; // 设置模拟行为 when(articleRepository.countByStatus(status)).thenReturn(expectedCount); // 调用被测试方法 int actualCount = articleService.countByStatus(status); // 断言预期结果与实际结果是否一致 Assert.assertEquals(expectedCount, actualCount); } } ``` 在这些示例中,我们使用了`@Mock`注解来模拟`ArticleRepository`依赖,并使用`@InjectMocks`注解将`ArticleService`类注入到测试类中。然后,我们使用`when`方法设置模拟行为,并调用被测试方法进行测试,最后使用断言来验证预期结果与实际结果是否一致。 希望以上示例能够帮助你编写测试用例。如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值