说我有A级
class A {
final String foo() {
// .. computing result, contacting database, whatever ..
return "some computed value";
}
// ... and a bazillion other methods, some of them final.
}
Run Code Online (Sandbox Code Playgroud)
现在我有B级
class B {
String methodIWantToTest(A a) {
String output = a.foo();
// ... whatever this method does, e.g.:
output += "_suffix";
return output;
}
}
Run Code Online (Sandbox Code Playgroud)
我如何进行单元测试这种方法?原因foo()是final是因为我们不希望扩展A的类改变其功能.但同时要对方法进行真正的单元测试,我不希望它伸出并运行实际的A.foo()方法.
有没有办法,比如说,删除最终的关键字,并添加一个注释@finalUnlessTest?你会推荐什么?重构A到一个接口将是非常非常困难的,看它是如何它是我们的中心类之一,并且不幸的是非常非常耦合.
编辑#1抱歉,忘记提及,我们正在谈论Java.我们还没有使用模拟框架.
回答好的,所以:哇.JMockit是令人难以置信的,在我看来是测试遗留代码的杀手级应用程序.特别是在我的情况下,令人难以置信的有用.非常感谢!你基本上会为我的psuedo-example执行类似下面的操作:
class AMock {
final String …Run Code Online (Sandbox Code Playgroud) Delphi 2009已将其字符串类型更改为使用2个字节来表示字符,这允许支持unicode字符集.现在当你得到sizeof(string)时,你得到length(String)*sizeof(char).Sizeof(char)目前为2.
我感兴趣的是,是否有人知道在逐个字符的基础上可以找出它是否适合单个字节的方式,例如找出char是ascii还是Unicode.
我最感兴趣的是,在我的字符串进入数据库(oracle,Documentum)之前,字符串将耗尽多少字节.
我们需要能够事先强制执行限制(因为我们拥有大量的安装基础),而无需更改数据库.如果字符串字段允许12个字节,则在delphi 2009中,长度为7的字符串将始终显示为使用14个字节,即使它到达数据库时,如果是ascii则仅使用7或如果是双字节则使用14,或者如果是混合物.
我创建了以下存储过程..
CREATE PROCEDURE [dbo].[UDSPRBHPRIMBUSTYPESTARTUP]
(
@CODE CHAR(5)
, @DESC VARCHAR(255) OUTPUT
)
AS
DECLARE @SERVERNAME nvarchar(30)
DECLARE @DBASE nvarchar(30)
DECLARE @SQL nvarchar(2000)
SET @SERVERNAME =
Convert(nvarchar,
(SELECT spData FROM dbSpecificData WHERE spLookup = 'CMSSERVER'))
SET @DBASE =
Convert(nvarchar,
(SELECT spData FROM dbSpecificData WHERE spLookup = 'CMSDBNAME'))
SET @SQL =
'SELECT clnt_cat_desc FROM ' + @SERVERNAME +
'.' + @DBASE + '.dbo.hbl_clnt_cat WHERE inactive = ''N''
AND clnt_cat_code = ''' + @CODE + ''''
EXECUTE sp_executeSQL @SQL
RETURN
Run Code Online (Sandbox Code Playgroud)
此过程用于许多不同的数据库和许多不同的服务器,并编写为动态SQL以简化维护.该过程还在与过程指向的服务器不同的服务器上运行.
我想使用此过程的输出作为表中的值...
DECLARE …Run Code Online (Sandbox Code Playgroud) 我正在为Java中的遗留应用程序编写替代品.其中一个要求是旧应用程序使用的ini文件必须按原样读入新的Java应用程序.此ini文件的格式是常见的Windows样式,带有标题部分和键=值对,使用#作为注释字符.
我尝试使用Java中的Properties类,但是如果不同标头之间存在名称冲突,那么这当然不起作用.
所以问题是,读取这个INI文件并访问密钥的最简单方法是什么?
由于某些原因,下面的代码崩溃了IE6.就像IE是可怕的一样,我以前从未见过这个.有没有人有任何想法?
<div id="edit">
<?php
$a = $_POST['category'];
if ($a == "")
{
$a = $_GET['category'];
}
$result = mysql_query("SELECT * FROM media WHERE related_page_id = $a && type= 'copy'");
?>
<table width="460px;">
<tr>
<td>Item</td>
<td> </td>
<td> </td>
<td> </td>
<td>Associated Images</td>
</tr>
<tr>
<td colspan="5"> </td>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
echo "<tr style='vertical-align:top'><td>$row[title]</td>";
echo "<td><a href='addimage.php?id=$row[id]&&category=$a'>Add image/file</a>";
echo "<td><a href='change.php?id=$row[id]&&category=$a'>edit</a></td>";
echo "<td><a href='delete.php?id=$row[id]&&category=$a'>delete</a></td>";
echo "<td>";
$id = $row['id'];
$result1 = mysql_query("SELECT * FROM media WHERE assets = $id");
while($row1 = mysql_fetch_array($result1)) …Run Code Online (Sandbox Code Playgroud) 我一直在准备提供有关SQL Server Compact Edition 3.5(SP1 - 最近发布)的演示文稿,我想知道是否有人设计(或考虑设计)具有SQL Server CE 3.5(或更早版本)的系统?
特别是,有没有人想过(或经历过)使用SQLCE作为离线数据存储的解决方案(作为连接系统设计的一部分)?
与其前辈相比,3.5版看起来相当丰富,是否已经准备好进行认真考虑(现在它支持LINQ to SQL,标识列和各种重要的T-SQL)?
如果你需要一个轻量级的低占用空间的基于文件的数据库(特别是如果它需要在移动设备和桌面系统上支持),或者有更好的选择,你会考虑使用它吗?
LinkedIn对使用其API的应用程序非常谨慎.我尝试过但未能访问它们.
有人真的用它们构建了任何真正的应用程序吗?如果是,您采用了哪种策略来访问其API?
BTW我在谈论LinkedIn之上的一流增值应用程序,而不仅仅是嵌入超链接.
我们正在尝试建立一个大批量订单记录系统.有三个主要表:1.订单2. OrderDetails 3. OrderShipment
Shipment表包含每个订单的n条记录,并且在客户接受订单之前可以更改任何记录货件条目,之后它将被冻结.(业务要求)
虽然在现实世界的场景中可能不会发生这种情况......在我们的加载测试期间,我们得到了System.Data.Linq.ChangeConflictException异常.在交易中包含提交也无济于事.我们不能强制LINQ在整个更新操作期间锁定行吗?
有没有其他方法来克服这个?
我正在使用CListCtrl控件在我的MFC应用程序中显示信息.目前我在SetExtendedStyle中设置了LVS_EX_CHECKBOXES,因此控件中的所有行旁边都有一个复选框.但我想要的是,只有控件中的某些行具有复选框.这可能吗 ?如果这是怎么做的?
谢谢
伊恩
循环展开是帮助编译器优化性能的常用方法.我想知道是否以及在多大程度上性能增益受到循环体内的影响:
你用什么规则来决定是否要解除性能关键循环?在这些情况下,您还考虑了哪些其他优化?
java ×2
sql-server ×2
algorithm ×1
api ×1
c# ×1
c++ ×1
concurrency ×1
database ×1
delphi ×1
delphi-2009 ×1
html ×1
ini ×1
legacy-code ×1
linkedin ×1
linq ×1
linq-to-sql ×1
mfc ×1
mocking ×1
optimization ×1
parsing ×1
performance ×1
php ×1
t-sql ×1
transactions ×1
unicode ×1
unit-testing ×1