|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
后面我们测试了model和controller,进修了一些经常使用的测试办法,如今我们来深切进修几个有关测试的主题。第一个是利用Mock对象。
在良多时分,我们的程序和实践的情况有依存干系,好比如今的购物车,在汇款,结账的时分要接进收集上的银行账号,如许就形成了我们测试的时分必需要有internet情况。好比,我们在model目次里创立了一个payment_gateway.rb来处置收集银行相干的操纵,我们在store_control.rb的save_order办法里如许写:- gateway=PaymentGateway.new
- response=gateway.collect(:login=>username,
- :password=>password,
- :amount=>cart.total_price,
- :card_number=>@order.card_number,
- :expiration=>@order.card_expiration,
- :name=>@order.name)
复制代码 我们在gateway的collect办法中利用银行账号的用户名,暗码等信息,可是如许一来,我们在测试的时分必需具有实在的internet情况,而且,我们不想在每次运转测试的时分都真正得往操纵银行账户。
以是,我们必要的是一个假对象(mock)或PaymentGateway的一个替换品,在这里,rails为我们供应了便利,我们所要做的就是在test/mock/test/目次下创立一个payment_gateway.rb文件,用来掩盖app/models目次下的payment_gateway.rb,要注重,这两处的文件名必需完整分歧。Mock文件的内容:- requiremodels/payment_gateway
- classPaymentGateway
- defcollect(request)
- #Imamockedoutmethod
- :success
- end
- end
复制代码 这意味着我们用mock对象替换了实在的models目次下的PaymentGateway,而collect办法也前往一个假的呼应。
在测试的时分,Rails会先到mock对象地点的目次查找,如许,加载的就是mock目次下的类,而不是实在的models目次下的类。
如许,经由过程利用mock对象,我们能够将精神放在主要的,优先级高的测试上,rails让这些事情变得复杂。
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。 |
|