import org.junit.*;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runners.MethodSorters;
/**
* UserService测试类
*/
// TODO 填写顺序执行的代码
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class UserServiceTest {
static UserService pUserService;
@BeforeClass
public static void initUserServices(){
pUserService = new UserService();
}
@AfterClass
public static void destroyUserServices(){
pUserService = null;
}
@Test
public void test1Login() {
// TODO: 请填写test1Login方法的单元测试代码
assertFalse(pUserService.login("user", "password2"));
assertFalse(pUserService.login("user1", "password2"));
assertTrue(pUserService.login("user1", "password1"));
}
@Test
public void test2UpdatePassword(){
// TODO: 请填写updatePassword方法的单元测试代码
assertNull(pUserService.updatePassword("user", "password2"));
assertEquals("pass",pUserService.updatePassword("user1", "pass").getPassword());
}
@Test(expected = IllegalArgumentException.class)
public void test3UpdatePasswordException(){
// TODO: 请填写updatePassword方法的单元测试异常代码
pUserService.updatePassword(null, null);
}
}
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
是JUnit框架中的一个注解,用于控制测试方法的执行顺序。这个注解应用在测试类上。
-
@FixMethodOrder
:这个注解表明我们想要改变默认的测试方法执行顺序。默认情况下,JUnit 4并不保证测试方法的执行顺序,它们通常随机执行。但通过使用这个注解,我们可以指定一个排序策略来决定这些方法的执行顺序。 -
MethodSorters.NAME_ASCENDING
:这是排序策略的一种,意味着测试方法将按照它们的方法名的字典(字母)顺序升序执行。换句话说,它会首先执行方法名在字母表中排得最前的测试方法,然后依次执行后面的方法。
使用这个注解的情况通常是当测试方法之间存在依赖关系,需要按特定顺序执行以确保每个测试的预设状态或环境时。但需要注意的是,通常推荐每个测试方法都是独立的,不依赖于其他测试方法的执行结果或状态,以保持测试的隔离性和可维护性。因此,这个注解的使用应当谨慎,并考虑是否有更好的方式来设计测试用例以避免方法间的依赖。
标签:MethodSorters,NAME,FixMethodOrder,void,pUserService,执行,public,测试方法 From: https://www.cnblogs.com/syhxx/p/18173759