PhpUnit ::如何测试受保护变量的__construct?
(并不总是我们应该添加公共方法getVal() - soo而不添加返回受保护变量值的方法)
例:
class Example{
protected $_val=null;
function __construct($val){
$this->_val=md5 ($val);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在返回void的函数中也存在测试问题
EDIT2:
我们需要测试__construct的原因示例:
class Example{
protected $_val=null;
//user write _constract instead __construct
function _constract($val){
$this->_val=md5 ($val);
}
function getLen($value){
return strlen($value);
}
}
class ExampleTest extends PHPUnit_Framework_TestCase{
test_getLen(){
$ob=new Example();//call to __construct and not to _constract
$this->assertEquals( $ob->getLen('1234'), 4);
}
}
Run Code Online (Sandbox Code Playgroud)
测试运行正常,但没有创建示例类"构造函数"!
谢谢
我希望我现在不会重复任何线程,但我找不到我的问题的好答案.我有五个以上的标签,因此更多标签会自动显示.我设法改变了它的一些设置,例如标题,背景和导航栏的样式等等.我的问题是我无法弄清楚如何在更多的表视图中更改文本颜色.应用程序的其余部分在所有表视图中都带有黑色背景,带有白色文本.
使用代码行: tabBarController.moreNavigationController.topViewController.view.backgroundColor = [UIColor blackColor];
我得到一个黑色的背景.有关如何更改文字颜色的任何想法?
为了访问Web服务,我需要一个证书.
我生成了我的证书:
openssl genrsa 1024 > private.key
openssl req -new -x509 -nodes -sha1 -days 1100 -key private.key > public.cer
Run Code Online (Sandbox Code Playgroud)
然后将这两个合并为一个pfx证书
openssl pkcs12 -in public.cer -inkey private.key -export -out client.pfx
Run Code Online (Sandbox Code Playgroud)
然后将我的pfx文件加载为X509Certificate2
X509Certificate2 clientCert = new X509Certificate2("cert.pfx", "password");
Run Code Online (Sandbox Code Playgroud)
现在,我想在数据库中创建一个包含以下字段的表:
PrivateKey NVARCHAR
PublicCer NVARCHAR
Password NVARCHAR
Run Code Online (Sandbox Code Playgroud)
然后从private.key文件中复制内容,以及----- BEGIN CERTIFICATE -----和----- END CERTIFICATE -----,对于public.cer也是如此,并设置密码.现在,如何通过从DB读取此数据来获取X509Certificate2的正确实例?换句话说,如何根据私钥和证书从代码生成pfx文件?
我会尝试更精确:
string connectionString; string query; string cert;
connectionString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
query = "SELECT clientcert FROM settings_services WHERE ID = 1";
using (SqlConnection cn = new SqlConnection(connectionString))
{
SqlCommand cmd = …Run Code Online (Sandbox Code Playgroud) 看一下这个 :
var a = Double.NaN;
Console.WriteLine(a == a);
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
打印"假"
var a = Double.NaN;
Console.WriteLine(a.Equals(a));
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
打印"真实"!
为什么打印"真实"?由于浮点数规范,NaN的值不等于它自己!所以似乎Equals()方法实现错误......我错过了什么?
我正在使用Apache提供的Java DefaultHttpClient来发布删除我们通过此处描述的/ app_id/accounts/test-users端点注册的测试用户http://developers.facebook.com/docs/test_users/
返回的响应是以下HTML:
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
Invalid method in request<P>
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
使用DefaultHttpClient POST和GET到测试用户api工作正常,它只是发送问题的DELETE.同时我也可以使用Python脚本,通过curl和使用Firefox REST Client扩展来实现DELETE(对于相同的用户和访问令牌).
有没有人知道错误意味着什么,或者在使用Facebook Graph API使用DefaultHttpClient时是否存在任何已知问题/陷阱?
更新:我已经尝试使用tcpdump分析不同的请求,正如Peter在评论中所建议的那样:sudo tcpdump -i eth2
但我所看到的只是数据包在我和Facebook之间来回传递,这似乎是诊断问题的一种低级方法.
实际上真是太棒了.有人可以用简单的英语解释为什么下面的部分工作与否?
class Hey;
class Bitmap {
public:
const Hey* const& getHey() { return hey; }; // works
const Hey* & getHey2() { return hey; }; // error C2440: 'return' : cannot convert from 'Hey *' to 'const Hey *&'
private:
Hey* hey;
};
Run Code Online (Sandbox Code Playgroud) 我正在开发一款基本上依赖于SIM卡状态的Android自动启动应用程序.当我的应用程序自动启动时,我需要它来检查SIM卡的更改位置.之后,我通过获取共享首选项将当前SIM与过去的SIM进行比较.但是,当获取新SIM卡的值时,应用程序返回空指针异常.
我想对sim状态作出反应.
当我收到SIM_STATE_READY状态时,我想从电话管理器获得新的SIM状态.
telMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
int simState = telMgr.getSimState();
switch (simState)
{
case (TelephonyManager.SIM_STATE_ABSENT):
System.out.println("*******************************************Sim State absent******************************");
break;
case (TelephonyManager.SIM_STATE_NETWORK_LOCKED):
System.out.println("*******************************************SIM_STATE_NETWORK_LOCKED******************************"+sim);
break;
case (TelephonyManager.SIM_STATE_PIN_REQUIRED):
System.out.println("*******************************************SIM_STATE_PIN_REQUIRED******************************"+sim);
break;
case (TelephonyManager.SIM_STATE_PUK_REQUIRED):
System.out.println("*******************************************SIM_STATE_PUK_REQUIRED******************************"+sim);
break;
case (TelephonyManager.SIM_STATE_UNKNOWN):
System.out.println("*******************************************SIM_STATE_UNKNOWN******************************"+sim);
break;
case (TelephonyManager.SIM_STATE_READY):
{
}
break;
}
default: break;
}
Run Code Online (Sandbox Code Playgroud)
我这样做但是不知道如何在SIM准备就绪时听SIM我想要的状态,以便我可以执行一些代码.当设备启动时,它总是返回"SIM_STATE_UNKNOWN"并导致程序执行完成.
请帮我实现这个目标.
我需要为我的用户创建代理电子邮件地址.电子邮件地址看起来像,user1234@domain.com但最好我想要更好看的电子邮件地址,如first.last@domain.com.发送到此地址的电子邮件应转发给用户的真实电子邮件地址,该电子邮件地址不会被公开(例如first.last@hotmail.com).无需创建POP3邮箱.发送到常规电子邮件帐户(例如info@domain.com)的电子邮件应该转到正确的POP3邮箱.我更喜欢PHP + MySQL解决方案,我也希望尽可能避免篡改服务器配置.
我在Facebook和Blogger上看过这样的东西.例如,Blogger为您提供了一个电子邮件地址,您可以在该地址发送电子邮件,并将其作为博客帖子发布.Facebook为您提供了一个电子邮件地址,您可以在该地址发送图片(通过手机),并在您的个人资料中发布.雅虎小组还会为您提供一个电子邮件地址,以便将已发送的电子邮件转发给订阅者.
所以我需要类似的东西,我只是将电子邮件转发到真实的电子邮件地址.我希望你明白这一点.任何帮助或指导将不胜感激.
我把它作为一个XML文件,我想编写一个可序列化的类来与XmlSerializer.Deserialize一起使用.
这是文件:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot
xmlns:od="urn:schemas-microsoft-com:officedata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="AFFEANALLECT.xsd"
generated="2011-02-02T13:27:46">
<AFFEANALLECT>
<NUMEEMPL>4</NUMEEMPL>
<TYPETRAV>SOUD</TYPETRAV>
<CONTRAT>08245</CONTRAT>
<DATE>2008-03-27 14:09:59</DATE>
<STATION>02</STATION>
<HORAIRE>1</HORAIRE>
<ORIGINE>AFFE FIN</ORIGINE>
</AFFEANALLECT>
<AFFEANALLECT>
<NUMEEMPL>4</NUMEEMPL>
<TYPETRAV>SOUD</TYPETRAV>
<CONTRAT>08245</CONTRAT>
<DATE>2008-03-27 08:29:46</DATE>
<STATION>02</STATION>
<HORAIRE>1</HORAIRE>
<ORIGINE>AFFE DEBUT</ORIGINE>
</AFFEANALLECT>
</dataroot>
Run Code Online (Sandbox Code Playgroud)
我为一个AFFEANALLECT做了类似的事情:
[Serializable()]
public class AFFEANALLECT
{
public string NUMEEMPL { get; set; }
public string TYPETRAV { get; set; }
public string CONTRAT { get; set; }
public string DATE { get; set; }
public string STATION { get; set; }
public string HORAIRE { get; set; …Run Code Online (Sandbox Code Playgroud) 以下代码的目的是像堆栈一样实现LIFO容器,而在检索元素时,它将检查列表中是否存在任何现有元素,或者它是否保留在检索元素的线程上,直到有新元素为止元素被插入.
public class Stack {
LinkedList list = new LinkedList();
public synchronized void push(Object x) {
synchronized (list) {
list.addLast(x);
notify();
}
}
public synchronized Object pop() throws Exception {
synchronized (list) {
if (list.size() <= 0) {
wait();
}
return list.removeLast();
}
}
Run Code Online (Sandbox Code Playgroud)
}
但是每当调用pop()时List中没有元素,就会发生死锁.如何在避免数据死锁的同时修改此类以实现初始目的.谢谢
c# ×3
.net ×2
java ×2
android ×1
c++ ×1
certificate ×1
deadlock ×1
email ×1
equals ×1
facebook ×1
https ×1
iphone ×1
nan ×1
pfx ×1
php ×1
phpunit ×1
qualifiers ×1
return-type ×1
stack ×1
textcolor ×1
uitableview ×1
visual-c++ ×1
zend-test ×1