你们中的许多人有时会遇到有趣的代码,问题和解决方案.所有这些都可以用作好的面试问题,或者只是为了获得其他任何测验的乐趣.你能分享一下吗?我认为创建一个Erlang测验很有意思 - 一个包含好问题和答案的列表.
这个问题或多或少与编程语言无关.然而,由于我现在主要使用Java,所以我将从中绘制示例.我也在考虑OOP的情况,所以如果你想测试一个方法,你需要一个该方法类的实例.
一个核心规则的单元测试是,他们应该是自主的,并且可以通过从它的依赖隔离一个类来实现.有几种方法可以做到这一点,这取决于你是否使用IoC注入依赖项(在Java世界中我们有Spring,EJB3和其他提供注入功能的框架/平台)和/或如果你模拟对象(对于Java你有JMock和EasyMock)将正在测试的类与其依赖项分开.
如果我们需要测试不同类中的方法组*并看到它们是很好的集成,我们编写集成测试.这是我的问题!
当您需要时,如何确保测试所需的数据库数据?你为什么选择你选择的方法?
请提供一个动机的答案,因为这是有趣的部分所在的动机.请记住,只是说"这是最好的做法!" 这不是一个真正的动机,它只是重复你从别人那里读过或听过的东西.对于这种情况,请解释为什么这是最佳做法.
*我在单元测试的定义中包含一个在同一个类的(相同或其他)实例中调用其他方法的方法,即使它在技术上可能不正确.请随意纠正我,但让我们把它作为一个侧面问题.
我有一个特定的要求,即从主app.config文件中删除所有客户端WCF配置(<system.serviceModel>),并将其删除到单独的XML文件中.我希望看到的行为类似于使用File =""指令在appSettings部分中提供的行为.事实上,我希望能够为每个消费的服务指定一个单独的文件...
我知道我可以构建一个自定义的ChannelBuilder工厂,它从XML文件(或其中一系列文件)中读取配置数据,但我更愿意仍然让客户端"自动发现"配置数据.
一些基本的谷歌搜索似乎暗示这是不可能的,但我想从SO获得视图 - 这里有人知道我无法找到的东西吗?:)
编辑::
蒂姆·斯科特和davogones都与一个可能的建议上来了,但一个依赖于分裂system.serviceModel节的组成部分出单独的文件.虽然这并不完全符合我要找的(我想定义每个服务及其相关的元素谨慎,每一个服务文件),它是一个选项.我会调查并让你知道我的想法.
我有3个这样的变量:$ first = 2; $ second = 5; $ operation ='*';
我怎么能以编程方式将这个数学问题的解决方案分配给$ answer变量?我尝试过eval(),但这不起作用.
我正在使用WCF将普通的旧XML(POX)文档返回给调用者.我正在使用XML Serializer格式化程序将对象转换为XML.
在返回的文档中,我为XML Schema和实例提供了一些无关的xml命名空间引用(在ASMX版本中没有).我在Web上看到了各种不应删除的参数,我不会为了返回纯XML文档而购买这些参数.
从WCF中返回的XML文档中删除这些xmlns引用的最简单方法是什么?
签名如下:
public ResponseInfo Process(string input) {
}
Run Code Online (Sandbox Code Playgroud) 如果您有以ESRI形状存储的地理数据,则至少有三个文件:一个以包含vector-data的.shp结尾,一个以包含属性的.dbf结尾,另一个以包含索引的.shx结尾的文件.
我对shx文件感兴趣.它是如何工作的?它是否包含完整的映射,例如"每个几何体的第一个几何图谱映射到dbf中的第三行,第二个几何图谱映射到第一行"?或者它的工作方式不同?
乱用List模块的"扩展功能".(我花了很长时间开发'mapfold' - 它将一个累加器像fold折叠,但是使用它作为参数来创建像map这样的新值 - 然后发现那是什么List.scan_left
)
为了生成测试数据,我需要做两个列表的交叉产品,这就是我提出的:
///Perform cross product of two lists, return tuple
let crossproduct l1 l2 =
let product lst v2 = List.map (fun v1 -> (v1, v2)) lst
List.map_concat (product l1) l2
Run Code Online (Sandbox Code Playgroud)
这有什么好处,还是有更好的方法来做到这一点?
同样的问题:
///Perform cross product of three lists, return tuple
let crossproduct3 l1 l2 l3 =
let tuplelist = crossproduct l1 l2 //not sure this is the best way...
let product3 lst2 v3 = List.map (fun (v1, v2) -> (v1, v2, v3)) lst2 …
Run Code Online (Sandbox Code Playgroud) 我可以访问哪个网址来获取Google API帐户?虽然网站指向http://www.google.com/apis并谈论"简单步骤",但我无法理解.
如果您向他们提供Google API帐户密钥(在我的案例中为http://www.freesitemapgenerator.com和索引检索),网络上有些地方会提供Google服务.
他们说要转到http://www.google.com/apis,但这只是将我重定向到http://code.google.com.我没有"简单的说明"来获取帐户.
我在这疯狂吗?(我有分析和网站管理员工具等激活,所以我有点知道我在做什么).
我可以使用以下代码删除表,但不知道如何使用约束执行相同的操作:
IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName
go
Run Code Online (Sandbox Code Playgroud)
我还使用此代码添加约束:
ALTER TABLE [dbo].[TableName]
WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name])
REFERENCES [dbo].[TableName2] ([ID])
go
Run Code Online (Sandbox Code Playgroud) 我需要编写一个查询,按年度到小时的时间段对大量记录进行分组.
我最初的方法是在C#中以程序方式决定周期,迭代每个周期并运行SQL以获取该周期的数据,随时构建数据集.
SELECT Sum(someValues)
FROM table1
WHERE deliveryDate BETWEEN @fromDate AND @ toDate
Run Code Online (Sandbox Code Playgroud)
我后来发现我可以使用Year(),Month()Day()和datepart(week,date)和datepart(hh,date)对记录进行分组.
SELECT Sum(someValues)
FROM table1
GROUP BY Year(deliveryDate), Month(deliveryDate), Day(deliveryDate)
Run Code Online (Sandbox Code Playgroud)
我担心的是,由于无法有效地使用datetime字段上的索引,因此在group by中使用datepart会导致比在一段时间内多次运行查询更糟糕的性能; 有关这是否属实的任何想法?
谢谢.
.net ×2
sql ×2
sql-server ×2
wcf ×2
api ×1
app-config ×1
erlang ×1
f# ×1
gis ×1
mocking ×1
namespaces ×1
performance ×1
php ×1
seo ×1
shapefile ×1
t-sql ×1
testing ×1
unit-testing ×1
xml ×1