/**
*
*/
package bookstore.testcase;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import bookstore.exception.StockLineEmptyException;
import bookstore.exception.StockLineExistedException;
import bookstore.model.Item;
import bookstore.model.Stock;
/**
* @author badboy
*
*/
public class TestStock {
private Stock stock;
Item stockLine1;
Item stockLine2;
Item stockLine3;
Item stockLine4;
@Before
public void before() throws StockLineExistedException{
stock = new Stock();
stockLine1 = new Item("book1","This is book1",99.9f,100);
stockLine2 = new Item("book2","This is book2",88,2);
stockLine3 = new Item("book3","This is book3",99,1);
stockLine4 = new Item("book4","This is book4",10,0);
stock.createStockLine(stockLine1);
stock.createStockLine(stockLine2);
stock.createStockLine(stockLine3);
stock.createStockLine(stockLine4);
}
@Test(expected=StockLineExistedException.class)
/*
* test duplicate case
*/
public void testCreateStockLine() throws StockLineExistedException{
stock.createStockLine(stockLine1);
}
@Test
public void testGetStockLine(){
String bookId = "book1";
Item item = stock.getStockLine(bookId);
assertEquals(bookId,item.getId());
assertEquals("This is book1",item.getDescription());
assertEquals(new Float(99.9f),new Float(item.getPrice()));
assertEquals(100,item.getRemaining());
}
@Test
public void testQuantityOperation() throws StockLineEmptyException{
Item item = stock.getStockLine("book1");
stock.removeQuantity(item,99);
assertEquals(1,stock.getStockLine("book1").getRemaining());
stock.addQuantity(item, 50);
assertEquals(51,stock.getStockLine("book1").getRemaining());
}
@Test(expected = StockLineEmptyException.class)
public void testQuantityException() throws StockLineEmptyException {
Item item = stock.getStockLine("book3");
stock.removeQuantity(item,2);
}
}
分享到:
相关推荐
5. **参数化测试**:`@Parameterized`测试可以使用不同的参数多次运行同一个测试方法,这对于测试多种输入情况非常有用。 6. **超时测试**:`@Test(timeout = 1000)`可以设置测试方法的执行时间限制,超过设定时间...
最后,"testJunit4"这个文件名可能是一个包含JUnit4测试用例的Java类或测试项目,其中可能包含了一系列的测试方法,用于验证特定功能的正确性。通过分析和运行这些测试用例,我们可以了解如何编写有效的JUnit4测试,...
总之,这个"Junit4的小实例程序"是一个很好的学习资源,通过它,你可以学习到如何使用JUnit4进行单元测试,包括创建测试类、编写测试方法、使用断言以及了解测试生命周期等核心概念。实践这些示例,将有助于提升你的...
创建JUnit测试类是单元测试的第一步。在Eclipse中,右键点击项目,选择"New" > "JUnit Test Case"。在此过程中,需要选择要测试的源代码类以及要测试的方法。测试类通常会继承自`org.junit.Test`注解的基类,并且每...
JUnit 是一个用于Java编程语言的单元测试框架,而Junit4作为其第四代版本,引入了许多新特性和改进,使得测试代码更加简洁、可读性强,大大提升了测试效率。这篇教程将带你走进Junit4的世界,深入理解其核心概念和...
2. `@RunWith(SpringRunner.class)`:这是一个JUnit runner,它使得Spring TestContext Framework可以驱动测试执行。 3. `@SpringBootTest`:这个注解用于启动一个Spring应用上下文,可以指定配置类、web环境等。 ...
这样,一个测试方法可以针对不同的输入值多次执行,大大增强了测试的覆盖率。 除了以上特性,JUnit4还支持使用注解进行分类测试,如`@Category`,以及使用`Assume`类来进行预条件检查,避免在不满足特定条件时执行...
创建一个名为CalculateTest的类,继承自Junit4的`org.junit.runner.RunWith`注解的`JUnit4`类。这样做是因为我们需要使用JUnit4的运行器来执行测试。 ```java import org.junit.Test; import static org.junit....
总结一下,JUnit4是一个强大的单元测试框架,它的注解驱动使得测试代码更简洁,断言机制便于检查代码行为,参数化测试、异常测试、分类和分组等功能则提高了测试的灵活性和覆盖率。通过合理使用JUnit4,开发者能够...
junit3 junit4 api,单元测试的利器
JUnit4是Java编程语言中最常用的一个单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于测试用例的设计和执行。在本文中,我们将深入探讨JUnit4的主要特性、如何使用以及它在实际开发中的重要性...
Unit是一个Java语言的单元...Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
其次,JUnit4支持参数化测试,允许使用不同的输入数据执行同一个测试方法。这通过`@Parameters`注解和相关的静态方法实现,可以大大提高测试覆盖率,确保代码对各种可能的输入都能正确处理。 再者,JUnit4引入了...
JUnit是一个流行的单元测试框架,它可以帮助开发者快速地编写和执行单元测试。 JUnit4的改进 ------------ JUnit4相比于JUnit3有了很大的改进。主要的改进点是引入了Annotation特性,简化了测试用例的编写。使用...
例如,`@Test`注解标记在测试方法上,表明这是一个需要执行的测试用例。此外,还有像`@Before`和`@After`注解,分别表示在每个测试方法执行前和执行后运行的代码块,用于初始化或清理测试环境。 除了基本的测试功能...
对于事务管理,Junit4提供了@Transactional注解,可以在测试方法上标记,使得整个测试过程在一个事务内执行。如果测试失败,事务会被回滚,防止脏数据遗留。 总的来说,"junit4测试数据库源码"这个资源包将帮助你...
`@Parameterized`测试允许用不同的输入参数运行同一个测试方法,以实现对多种情况的覆盖: ```java @RunWith(Parameterized.class) public class ParameterizedTest { @Parameters public static Collection[]> ...
Eclipse开发环境是一个流行的Java集成开发环境,它支持JUnit插件,使得在Eclipse中编写和运行JUnit测试变得直观和便捷。 在Eclipse中使用JUnit4进行单元测试,首先需要安装JUnit库到项目中,并配置构建路径。然后,...
总结来说,"Junit计算器测试"是一个很好的实践项目,它可以帮助初学者理解Junit的基本用法,包括创建测试类、编写测试方法、使用断言以及理解测试生命周期。通过这样的练习,开发者可以逐步掌握单元测试的精髓,提高...