Unit Test单元测试时怎么模拟HttpContext

By admin in mobile.365-838.com on 2018年10月22日

参考文章:http://blog.csdn.net/bclz_vs/article/details/6902638

2017年四季度来说,许多上市企业陆续发行而转债。截至目前,已上市的可转债数量一度落得38一味。可转债的投资素来来“下产生保底,上无封顶”的名望,那么今天咱们就算来探可转债到底出几栽玩法。

           
 http://www.cnblogs.com/PurpleTide/archive/2011/03/31/2001366.html

1. 赚取债券收益

           
 http://hi.baidu.com/xiaoduo170/item/a4f79a79c8bc733e71442358

而是转债是同一栽债券,具备每年付息、到期还按的表征。当可转债的交易价格低于票面价(100首届)时,投资者还可附加获取交易价与票面价之间的差额利润。截至目前,已出多只是可转债价格稳中有降破了100头版的票面价,这吗为那些保守的投资者创造了投资之机遇。

在做单元测试的时节HttpContext.Current是吧null的

祈求1:部分胜似收益而转债

而聊dll是暨HttpContext绑定的(很充分原因是…net大部分用以web项目)

数码来源于:集思录。数据截至2018-1-4开盘前

要是打算以windows form 或者console中使用这些dll就吊了…

2. 赚取股权收益

自HttpContext.Current是好赋值的…那么最极致简易的主意就是是一直new一个HttpContext给她啦

可转债之所以比通常债权更抓住人口,主要是因其独具一定原则下将债券转为股票的权利。例如一摆面值为100长之只是转债,转股价为20冠。当股价上升到25正时,每张可转债就不过抱收入(100/20)×(25-20)=25首先。

HttpRequest request = new HttpRequest("", "http://localhost", "");
            HttpContext.Current = new HttpContext(request, new HttpResponse(new System.IO.StringWriter()));

最后在单元测试类中:
[TestInitialize]
public void MyTestInitialize()
{
   HttpContext.Current = new HttpContext(new HttpRequest("", "http://localhost", ""),new HttpResponse(new StringWriter(new StringBuilder())));
}

故而,持有股价有水涨船高潜力的小卖部的只是转债,就更有或赚取股权收益。在此,我概括根据财报数据列有几家开始来开始还对的合作社可转债。

  ·  带有[ClassInitialize()]特性的措施在履类中首先个测试之前调用。

祈求2:部分发行而转债优秀企业

    ·  带有[TestInitialize()]特性的方法在执行每个测试前都会被调用,一般用来初始化环境,为单元测试配置一个特定已知的状态。
    ·  带有[ClassCleanup()]特性的方法将在类中所有的测试运行完后执行。
    ·  带有[TestCleanup()]特性的方法将在每个测试运行完毕后执行,一般用来恢复环境变量到测试前的已知状态,可能是删除一个文件或者恢复数据库记录。

所以[TestInitialize()]的调用时间是在构造函数之后,TestMethod之前。

 

下表列出了这四个方法的解释和用法。

数量来源:东方财富、集思录。 数据截至2018-1-4开课前

函数名

用法

[ClassInitialize()]

MyClassInitialize

这个方法会在每次调用测试方法前被自动调用。假设在调用AddTest(),DivideTest()等方法之前都需要初始化一些基本数据列表,则这个工作可以放在MyClassInitialize函数里面,不用分别写在每个测试方法里。

[ClassCleanup()]

MyClassCleanup

这个方法会在每次调用测试方法结束后被自动调用。

[TestInitialize()]

MyTestInitialize

这个方法会在每次启动一个测试过程前被自动调用。例如本次测试一共选择了AddTest(),DivideTest()两个测试方法,则在调用这两个方法前,MyTestInitialize会先被调用。与MyClassInitialize不同的是,MyClassInitialize是每次调用测试方法时都会被调用,相当于函数级的调用,MyTestInitialize则只在测试过程前会被调用一次,在测试过程结束前,不会再被调用,相当于过程级的调用。

[TestCleanup()]

MyTestCleanup

这个方法会在每次结束一个测试过程后被自动调用。

 

亟待小心的凡,由于赚取股权收益都同于股票投资,因此如果未来店家股价出现大幅回落,可转债价格也会见随着同步变化,只是可转债有个100状元票面的保底价,可以少亏点而已。

Visual Studio 之所谓把这四只函数注释掉,原因是这四独函数只是示意性函数(从名字被就可以看出)。关键是圈即四独函数的章程属性[ClassInitialize()],[ClassCleanup()],
[TestInitialize()], [TestCleanup()]若果将有关的性加到相关的道上,那么这法子就所有的上面所描述的法力。

3. 赚取博弈收益

 

咱都了解,可转债最充分之一个特色就是是以债券换吧股票。那么对上市企业来说,债转股就代表通过摊薄全体股东的权益,为商家免除一挺笔帐。故此不少上市企业都见面想尽实现债转股。

 

具体会怎么样操作为?我们先来拘禁这样少单条款:

  • 干什么用Mock
     本文转载: http://blog.csdn.net/cooleader320/article/details/1907535
  • 单元测试的为主条件应该是历次就验证一个艺术,但是只要遇到这么平等栽状态:
  • 测试方法依赖让其他部分不便操控的事物,如:网络,数据库。或者是若测试的代码依赖让系统的外部分,甚至是系的多独其他组成部分。在这种景象下,倘若不小心,最终可能发现自己不小心几乎初始化了系统的各个一个组件,而具这一切才是为了让某个一个测试创造必要的运作环境。这不只花了汪洋底时日,要命的凡这样的测试用例会叫引入大量之耦合因素,很为难抵“单元”测试的目的。我们该怎么惩罚也?
    这是Mock的测试方法就派上用场了。Mock的英文的字面意思是:嘲笑,模仿,欺骗的意思。通过Mock,我们可以创造很多真对象的替代品,在测试用例中动用它。

    • 哎呀状况下考虑使用Mock

     

    1)         真实的对象有不可确定的表现(如:程序要经过web
    service获得股票的实时价格)

    2)         对象十分麻烦让创造(如系环境非常为难初始化)

    3)         真实对象的某些行为特别为难给触发(如网错误,数据库ID自增序列溢起)

    4)         真实的目标令程序运行很缓慢

    5)         真实对象含有UI等非便宜测试的要素

    6)         测试用了解真实对象是何等让调用的(如异步调用的景况,需要验证Callbak的函数)

    7)         真实的靶子时还不在(如依让其它类别组或者虽然要新的硬件系统)

向阳下修正条文为可转债变得有利可图

产生原则赎回条款为债主主动成为股东

当企业股价长期低迷时,董事会可以预先通过“转股价格向下修正条文”调低转股价,再配合“有规范赎回条款”,让可转债变得有利可图,“迫使”债权人把手里的国债券换成股票。

就此,所谓赚取博弈收益,就是“赌”未来上市企业会下调可转债的转股价。

既是是赌博,就从未有过100%的确信。但是,我们照样得以透过有规范,缩小目标限制,从而使预期收入控制以可接受之克外。

标准1:满足于下修正条文的渴求。根据条件,需要商家股价在连续30个交易日中至少15单交易日收盘价低于转股价格之80%。在普跌行情中,大量只是转债公司股价会长期低于转股价,因此大熊市大凡藏身可转债的好机会。

基准2:尽量选临近到期的可是转债。持有可转债的尾声结出但就是是转股和到兑付(假设不设有违约之事态)。因此,持有到期时间更加短的但转债,时间本就愈加聊。例如目前底格力转债,到期时不至2年,那么最多我们恐怕白白等了点儿年时。如果运气好,2年内董事会下调转股价,那么即便能博得超额收益。

法3:尽量选择股价“企稳回升”的股票。这无异于长条之论断有些不合理,主要是坐下调的转股价自身也发自然范围。

下调转股价也发生限制,不克为所急需也

用于股价单边下跌时,很有或刚刚下调完转股价,股价连续大幅下滑,结果还无利可图。

规则4:尽量选贴近回售期的但转债。回售是不过转债中之其它一样码条款,大致内容如下:

回售的主动权在拥有人这边

也就是说,到了扭转售期后,只要企业股价低于转股价一定水准,可改债持有人可以拿债权卖还给上市企业,拿回成本及利息。

对商家吧,提前还钱可是免是一个好信息。因此理论及看,临近回售期的上市企业再次发生动力促成转股价的下调。

标准5:尽量选择负债率高、现金不翼而飞的信用社的可是转债。这漫漫道理也杀简单,负债率越强,现金更加少,公司更是不思还钱,因此下调转股价,促成转股的动力就是越是强。

4. 套利收益

由于可转债价格和股票价格是于片只市场遭遇交易,因此有时见面面世有套利机会。例如之前案例中,面值100处女的但是转债,转股价为20首先,当前股价也25首先。理论及可是转债价格应为125最先才免会见起套利空间。但实际上只是转债价格好可能逾或低于125首届。两者反差进一步怪,套利的上空啊就是愈加充分。

当下,不少但转债的标价一度回落破100首的面值。理论及看,投资这些不过转债基本已经不见面蒙经济上之亏损,这吗预示着可转债的投资会正以悄然临近。为了不为这样的会白白溜走,我们不妨提早做够准备。在这,我哉引进一个翻和学而转债的网站,希望大家能在时来到时犹能够确实吸引。

集思录:https://www.jisilu.cn/data/cbnew/\#cb

THE END

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 mobile.365-838.com 版权所有