博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NUnit+mock+moq单元测试
阅读量:5061 次
发布时间:2019-06-12

本文共 2214 字,大约阅读时间需要 7 分钟。

[TestFixture]    public class InstantBatchBuyTest    {        private string _mallAbc;        private string _itemCode;        private int _quantity;        private string _items;        Mock
mockCatalog; Mock
mockShoppingCartService; [SetUp] public void Init() { _mallAbc = string.Empty; _itemCode = "18-001-0001"; _quantity = 2; _items = "[{\"qty\":2,\"sku\":\"18-001-0001\"},{\"qty\":4,\"sku\":\"18-001-0002\"},{\"qty\":2,\"sku\":\"18-001-0003\"}]"; var items = new List
() { new ItemInfo { ItemCode = "18-001-0001" }, new ItemInfo { ItemCode = "18-001-0002" }, new ItemInfo { ItemCode = "18-001-0003" } }; mockCatalog = new Mock
(); mockCatalog.Setup(s => s.GetItemByCodeList(It.IsAny
>())).Returns(items); // 这些都是服务端的接口,此处我们可以设置返回值 mockShoppingCartService = new Mock
(); mockShoppingCartService.Setup(s => s.CheckItemInventory("18-001-0001", 2)).Returns(true); mockShoppingCartService.Setup(s => s.CheckItemInventory("18-001-0002", 4)).Returns(true); mockShoppingCartService.Setup(s => s.CheckItemInventory("18-001-0003", 2)).Returns(true); mockShoppingCartService.Setup(s => s.InstantBuyForbiddenBuyProduct(items)).Returns(false); } [Test] public void 立即购买_单个商品() { var result = new InstantBuyAjaxResult(); // Arrange var instanItemList = new List
() { new InstantItemModel { ItemCode = _itemCode, Quantity = _quantity } }; if (instanItemList.Any()) { // Act result = (new InstantBuyLogic(mockShoppingCartService.Object, mockCatalog.Object)).InstantBuy( instanItemList); } // Assert Assert.AreEqual(result.Status, 1); } [Test] public void 立即购买_多个商品() { var result = new InstantBuyAjaxResult(); // Arrange var instanItemList = JsonHelper.JsonToObject
>(_items); if (instanItemList != null && instanItemList.Any()) { // Act result = (new InstantBuyLogic(mockShoppingCartService.Object, mockCatalog.Object)).InstantBuy( instanItemList); } // Assert Assert.AreEqual(result.Status, 1); } }

需要添加Moq.dll、nunit.framework.dll引用,开发过程中结合Resharper,使用起来更加方便

转载于:https://www.cnblogs.com/cr7/p/3229420.html

你可能感兴趣的文章
Git与Repo入门(转载)
查看>>
夺命雷公狗---linux NO:10 linux的文件与目录的基本操作
查看>>
(shell)show all the folders and sub-folders
查看>>
linux配置ssh某用户只允许证书登陆
查看>>
Count the string
查看>>
黑马程序员---登录进阶练习
查看>>
微信公众号开发
查看>>
安装l Xposed Framework
查看>>
Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
查看>>
如何在CentOS上使用高版本的GCC编译
查看>>
ScrollView 的使用(非原创)
查看>>
H5实现本地预览图片
查看>>
JavaWeb_(SSH)Struts创建Action的三种方式
查看>>
jQuery extend()和jQuery.fn.extend()区别和详解
查看>>
FZU 2254 英语考试 (最小生成树)
查看>>
[Vue +TS] Use Two-Way Binding in Vue Using @Model Decorator with TypeScript
查看>>
Flask学习-Flask app启动过程
查看>>
servicestack
查看>>
Pow(x,n) leetcode java
查看>>
高效判断素数方法
查看>>