我刚刚开始参与令人兴奋的WPF开发世界,多年来一直是C++开发人员.
当然,使用丰富的用户界面测试应用程序总是很难.传统上,复杂化的问题之一是,在大多数Windows应用程序中,UI,UI逻辑和App逻辑都是完全相互依赖的,无法单独测试.
我非常喜欢MVVM方法,它允许我将UI与应用程序分开,并在我的视图模型上运行大量自动化测试,在我的所有逻辑下面,视图是一个相当愚蠢的客户端视图模型.
这一切都很好,并且巧妙地将应用程序逻辑的测试从应用程序UI中分离出来.但是,它没有提供实际测试UI本身的解决方案.即使视图通常包含非常少的逻辑,它仍然可能包含大量的各种错误.
测试视图本身的当前技术水平是什么?
谢谢汤姆
我想知道为什么Coded UI测试如此重要.看起来我只是记录我的行为,所以显然一切都会过去.它似乎只是我记录我确实搞乱了GUI.我的所有断言都显得非常明显.当然,他们将是真实的.有人可以向我解释为什么这些值得花时间吗?我敢肯定,他们是的,但我不明白为什么他们是如此的重要....我的意思是,我可以测试我的手基本程序在五分钟内,但它要带我一个钟头做合法的编码UI测试.
我有一个我需要测试的设备的输出,主要是响应是一行,但有时它是两行.我用简单的正则表达式处理一行或两行来处理
if ($prompt =~ /(\s.*?)\r\n(.*)/)
{
Note('Multiline '.$string);
TestPrompt($string, $1);
TestPrompt($string, $2);
}
else
{
TestPrompt($string, $prompt);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果响应超过两行呢?这段代码无法处理额外的行,我想在我的设计中保持健壮.有没有办法从正则表达式中捕获foreach?
在我的grails应用程序中,我使用Spock和Geb来执行功能测试.
由于所有测试都在同一个数据库上运行,因此我想提供正在执行CRUDSpec类的顺序.如何指定?
例
我想在机器人测试用例本身中记录测试场景,场景背后的原理等.为此,文档需要支持多行功能和格式.反正有没有包含某些格式的文档,rst比如我将通过简单的语法提供更多的格式化功能.
automated-tests restructuredtext functional-testing robotframework
我有这个功能测试(我只是显示一个片段):
namespace Just\An\ExampleBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ExampleControllerTest extends WebTestCase
{
public function testCrearTipus()
{
$client = static::createClient(array(), array(
'PHP_AUTH_USER' => 'login',
'PHP_AUTH_PW' => 'pa$$sword'
));
$client->followRedirects();
$url = '/admin/type/new';
$crawler = $client->request('GET', $url);
$token = $crawler->filter('input[name="name_of_form[_token]"]')->first()->getValue();
.....
}
}
Run Code Online (Sandbox Code Playgroud)
我只是无法获取我的视图中定义的输入值:
任何帮助,将不胜感激
我想使用使用MockRestAdapter创建的模拟Retrofit API服务实例,使用Espresso为Activity编写功能测试(https://github.com/square/retrofit/blob/master/retrofit-mock/src/main/java /retrofit/MockRestAdapter.java).
这有点棘手,因为你无法通过Activity的构造函数注入任何依赖项.
目前,单个Retrofit API服务实例存在于我的Application对象中,我在每个Activities的onCreate()方法中创建了对它的引用.
如何交换模拟Retrofit API服务?也许Dagger就是答案?
我需要做类似的事情:
expect(theElement.hasText()).toBe(true);
Run Code Online (Sandbox Code Playgroud)
你知道我怎么办吗?
我知道量角器中有一个"getText"函数,但是,我怎么能用呢?我该怎么办?:
expect(theElement.getText().lenght > 0).toBe(true);
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有以下测试(可能是功能测试而不是集成,但是...):
@Integration(applicationClass = Application)
@Rollback
class ConventionControllerIntegrationSpec extends Specification {
RestBuilder rest = new RestBuilder()
String url
def setup() {
url = "http://localhost:${serverPort}/api/admin/organizations/${Organization.first().id}/conventions"
}
def cleanup() {
}
void "test update convention"() {
given:
Convention convention = Convention.first()
when:
RestResponse response = rest.put("${url}/${convention.id}") {
contentType "application/json"
json {
name = "New Name"
}
}
then:
response.status == HttpStatus.OK.value()
Convention.findByName("New Name").id == convention.id
Convention.findByName("New Name").name == "New Name"
}
}
Run Code Online (Sandbox Code Playgroud)
数据是通过BootStrap加载的(这可能是个问题),但是问题是当我在then块中时;它会Convention通过新名称和id匹配项找到,但是在测试该name字段时失败了,因为它仍然具有旧名称。
在阅读有关测试的文档时,我认为问题出在创建数据的会话中。由于的@Rollback …
我正在尝试测试一个Java方法,该方法向远程REST服务器发出请求以检索某些JSON数据,从该JSON中提取ID,然后使用该ID向另一个端点上的同一服务器发出另一个请求.
使用Mockito的MockRestServiceServer,我可以成功地模拟和测试需要单个请求到一个端点的服务器,但似乎我不能使用它来创建一个具有一组预定义端点的服务器,这些端点具有自己的期望和响应.
如何模拟具有多个端点的服务器,以便测试向远程服务器发出多个不同请求的单个函数?