我正在尝试创建一个基于.NET的客户端应用程序(在WPF中 - 虽然目前我只是将其作为控制台应用程序)与一个支持OAuth的应用程序集成,特别是Mendeley(http:// dev .mendeley.com),显然使用三足OAuth.
这是我第一次使用OAuth,开始使用它时遇到了很多困难.我发现了几个.NET OAuth库或帮助程序,但它们似乎比我想象的要复杂得多.我想要做的就是能够向Mendeley API发出REST请求并获得回复!
到目前为止,我已经尝试过:
第一个(DotNetOpenAuth)似乎可以做我需要的,如果我花了几个小时试图弄清楚如何.我可以说,第二个和第三个不支持Mendeley发回的验证码 - 虽然我可能错了:)
我从Mendeley获得了消费者密钥和秘密,并且通过DotNetOpenAuth,我设法通过Mendeley页面启动了一个浏览器,为用户提供了进入应用程序的验证码.然而,在这一点上,我迷路了,无法弄清楚如何合理地将其提供给应用程序.
我非常愿意承认我不知道从哪里开始(虽然看起来有一个相当陡峭的学习曲线) - 如果有人能指出我正确的方向我会很感激!
这是我项目中的BroadcastReceiver,我正在寻求单元测试.当用户打电话时,它会抓取电话号码,并设置开始新活动的意图,并传入电话号码.
public class OutgoingCallReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context xiContext, Intent xiIntent)
{
if (xiIntent.getAction().equalsIgnoreCase(Intent.ACTION_NEW_OUTGOING_CALL))
{
String phoneNum = xiIntent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Intent intent = new Intent(xiContext, MyActivity.class);
intent.putExtra("phoneNum", phoneNum);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
xiContext.startActivity(intent);
setResultData(null);
}
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的单元测试看起来像这样:
public class OutgoingCallReceiverTest extends AndroidTestCase
{
private OutgoingCallReceiver mReceiver;
@Override
protected void setUp() throws Exception
{
super.setUp();
mReceiver = new OutgoingCallReceiver();
}
public void testStartActivity()
{
Intent intent = new Intent(Intent.ACTION_NEW_OUTGOING_CALL);
intent.putExtra(Intent.EXTRA_PHONE_NUMBER, "01234567890");
mReceiver.onReceive(getContext(), intent);
}
}
Run Code Online (Sandbox Code Playgroud)
这贯穿代码,但我希望我的测试能够检查意图是否已发送出去,并检查其上的电话号码.我该怎么做呢?
我还可以测试电话呼叫是否被取消(因为setResultData(null)行)?
我有一个Rails控制器,它将以XML格式输出一个哈希 - 例如:
class MyController < ApplicationController
# GET /example.xml
def index
@output = {"a" => "b"}
respond_to do |format|
format.xml {render :xml => @output}
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是,Rails添加了一个我不想要的<hash>标签,即:
<hash>
<a>
b
</a>
</hash>
Run Code Online (Sandbox Code Playgroud)
我怎样才能输出这个呢?
<a>
b
</a>
Run Code Online (Sandbox Code Playgroud) 我有一个~5000点的列表(指定为经度/纬度对),我想找到用户指定的最近的5个点到另一个点.
有谁能建议一个有效的算法来解决这个问题?我在Ruby中实现了这个,所以如果有一个合适的库那么这将是很好的知道,但我仍然对算法感兴趣!
更新:有几个人要求提供有关问题的更多具体细节.所以这里:
我正在使用Travis CI来构建我的Python项目.我想针对不同版本的Python测试我的项目,但是有一个脚本只有在所有这些脚本都成功的情况下运行.
例如,这个travis.yml不能完成这项工作,因为after_success部分在每个Python构建之后运行:
language: python
python:
- '2.7'
- '3.2'
script:
- python setup.py test
after_success:
- # this runs both on 2.7 and 3.2
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我正在尝试使用NUnit对自定义WPF控件进行单元测试.该控件是按钮的ListView,绑定到列表(DataContext在控件的构造函数中设置).
我想编写测试(例如)将项目添加到列表中并检查是否有新按钮添加到视图中等等.但是,当我在NUnit测试中将项目添加到列表时,它仍会报告ListView为空.但是,当我运行我的应用程序时,一切正常.
我在下面列出了相关代码.我需要做些什么来测试这个?
XAML:
<ListView x:Class="SoundBlock"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
ItemsSource="{Binding Path=Sounds}">
<ListView.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Title}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
类定义
public partial class SoundBlock : ListView
{
public SoundBlock(Board xiBoard)
{
// Initialize.
InitializeComponent();
// Set the data context for this block.
DataContext = xiBoard; // Board has an ObservableCollection<Sound>
// property called Sounds.
}
}
Run Code Online (Sandbox Code Playgroud)
测试用例
[Test]
public void TestAddSound()
{
board = new Board();
block = new SoundBlock(board);
Assert.AreEqual(0, block.Items.Count);
sound = new Sound("sound.mp3");
board.Sounds.Add(sound);
Assert.AreEqual(1, …Run Code Online (Sandbox Code Playgroud) 我有一个与嵌入式Jetty一起运行的Scalatra Web服务.我现在想编写集成测试:
这应该全部由SBT命令触发.
我该怎么办呢?
我有一份期货清单,我想逐一改造:
def foo(x: A): Future[B] = {...}
def mapFutures(xs: Future[List[A]]): Future[List[B]]
Run Code Online (Sandbox Code Playgroud)
该函数mapFutures应该使用转换列表的每个元素foo,并返回列表的未来.最好的方法是什么?