我尝试下面的代码,但似乎它不起作用...有人能告诉我最好的方法吗?
public void verifyThatCommentDeleted(final String text) throws Exception {
new WebDriverWait(driver, 5).until(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver input) {
try {
input.findElement(By.xpath(String.format(
Locators.CHECK_TEXT_IN_FIRST_STATUS_BOX, text)));
return false;
} catch (NoSuchElementException e) {
return true;
}
}
});
}
Run Code Online (Sandbox Code Playgroud) 因此,Guava具有简单但有用的前置条件来检查方法参数.但我想有一个"后置条件"类也是合理的.或者只是因为java提供断言?
由于这样的类不存在,在mathod返回之前检查postonditions的"最佳"(练习)替代方法是什么?
我正在尝试测试模块中的活动.我只是试图在测试方法中开始这个活动,但我总是有一个AssertionFailedError.我在网上搜索了这个问题,但找不到任何解决方案.任何帮助表示赞赏.
这是我的测试类:
public class ContactActivityTest extends ActivityUnitTestCase<ContactActivity> {
public ContactActivityTest() {
super(ContactActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
}
public void testWebViewHasNotSetBuiltInZoomControls() throws Exception {
Intent intent = new Intent(getInstrumentation().getTargetContext(),
ContactActivity.class);
startActivity(intent, null, null);
}
@Override
public void tearDown() throws Exception {
super.tearDown();
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
junit.framework.AssertionFailedError
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:147)
at com.modilisim.android.contact.ContactActivityTest.testWebViewHasNotSetBuiltInZoomControls(ContactActivityTest.java:29)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1763)
Run Code Online (Sandbox Code Playgroud)
问候.
android unit-testing assertion activityunittestcase start-activity
我想声明两个列表的元素包含我期望的值,如:
var foundCollection = fooManager.LoadFoo();
var expectedCollection = new List<Foo>()
{
new Foo() { Bar = "a", Bar2 = "b" },
new Foo() { Bar = "c", Bar2 = "d" }
};
//assert: I use AreEquivalent since the order does not matter
CollectionAssert.AreEquivalent(expectedCollection, foundCollection);
Run Code Online (Sandbox Code Playgroud)
但是上面的代码不起作用(我猜是因为.Equals()对于具有相同值的不同对象不返回true).在我的测试中,我只关心公共属性值,而不关心对象是否相等.我该怎么做才能做出我的断言?
OCP Java SE 6程序员实践考试的正确答案之一是:
您可以通过编程方式测试已启用的断言,而不会抛出
AssertionError.
我怎样才能做到这一点?
我只是想知道如何测试一个不返回任何东西的函数.例如,说我有这个功能:
def is_in(char):
my_list = []
my_list.append(char)
Run Code Online (Sandbox Code Playgroud)
如果我要测试它:
class TestIsIn(unittest.TestCase):
def test_one(self):
''' Test if one character was added to the list'''
self.assertEqual(self.is_in('a'), and this is where I am lost)
Run Code Online (Sandbox Code Playgroud)
我不知道断言该函数是什么等于,因为没有返回值我可以将它与之比较.
编辑:会断言工作吗?
CUDA 内核代码中断言的等效技术是什么?
似乎没有CUDA内核代码的断言.我想要一种在内核代码中轻松捕捉程序员错误的方法.一种机制,我可以设置需要为true的条件,并且当条件为false并且出现错误消息时内核应该挽救.
让我们考虑一下我需要断言元素是否存在的情况。在 cypress 中有两种可能的方法来做到这一点:
1) cy.get('button').contains('Save')
2) cy.get('button').contains('Save').should('exist')
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,如果“保存”按钮不存在,测试都会失败。
除了可能更好的代码可读性/可维护性之外,我应该将.should('exist') 添加到我的 cypress 测试中的原因是什么?
isTextPresent在Selenium 2中没有(WebDriver)
使用WebDriver断言页面上是否存在某些文本的正确方法是什么?
使用 python 3.5.3 我想断言模拟函数收到了特定的参数,但我不想检查所有收到的参数,只检查对测试重要的参数。
例如,不要这样做:
my_func_mock.assert_called_with('arg1','arg2','arg3')
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
my_func_mock.assert_called_with_partial(arg2='arg2')
Run Code Online (Sandbox Code Playgroud)
是否可以?